最近看到你問題不少,看得出在積極學習,但懶得回答,因為問題卻描述不清,也不貼代碼。
所有問題的答案,在網絡上都可以找到。
這個問題如果處理?依據自己的開發經驗提供一些實現方法。
1、控件模板的定義
假定你的控件模板如下定義
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" Background="{TemplateBinding Background}"
<ContentPresenter x:Name="contentPresenter" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" TargetName="border" Value="Green"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
這里是一個Button的Template,這里有個Border就是描述按鈕的顯示區域,你說的控件背景通過Border的Background可以實現。
1、可以直接設定不變值,比如:Backgorund="Gray";
2、通過TemplateBinding綁定到Background上,這個Background可以看做控件全局變量,Button在Xaml中使用時賦予值,如下Button用到上述Template:
<Button x:Name="idBtnTest" Background="Blue" >
<Button.Template>
<!--上述Template-->
</Button.Template>
</Button>
Button的Background因為在Template中綁定到了Border上,Border的背景色也是Blue。
只要在代碼中通過idBtnTest.Background = Brushs.Red;這樣的方式就可以動態修改Button的背景色。
3、通過Trigger修改背景色,具體用法看上例(也可以通過VisualStateManager)。
4、可以通過DataTrigger,具體自己搜索關鍵字學習。
根據問題,做個小總結,并不全面,希望對此問有所幫助。