最近看到你問(wèn)題不少,看得出在積極學(xué)習(xí),但懶得回答,因?yàn)閱?wèn)題卻描述不清,也不貼代碼。
所有問(wèn)題的答案,在網(wǎng)絡(luò)上都可以找到。
這個(gè)問(wèn)題如果處理?依據(jù)自己的開(kāi)發(fā)經(jīng)驗(yàn)提供一些實(shí)現(xiàn)方法。
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>
這里是一個(gè)Button的Template,這里有個(gè)Border就是描述按鈕的顯示區(qū)域,你說(shuō)的控件背景通過(guò)Border的Background可以實(shí)現(xiàn)。
1、可以直接設(shè)定不變值,比如:Backgorund="Gray";
2、通過(guò)TemplateBinding綁定到Background上,這個(gè)Background可以看做控件全局變量,Button在Xaml中使用時(shí)賦予值,如下Button用到上述Template:
<Button x:Name="idBtnTest" Background="Blue" >
<Button.Template>
<!--上述Template-->
</Button.Template>
</Button>
Button的Background因?yàn)樵赥emplate中綁定到了Border上,Border的背景色也是Blue。
只要在代碼中通過(guò)idBtnTest.Background = Brushs.Red;這樣的方式就可以動(dòng)態(tài)修改Button的背景色。
3、通過(guò)Trigger修改背景色,具體用法看上例(也可以通過(guò)VisualStateManager)。
4、可以通過(guò)DataTrigger,具體自己搜索關(guān)鍵字學(xué)習(xí)。
根據(jù)問(wèn)題,做個(gè)小總結(jié),并不全面,希望對(duì)此問(wèn)有所幫助。