wpf 怎么更改页面上控件的背景色啊,都已经绘制上去了,怎么办呢?

急求啊,而且我的控件模版里面定义的它的样式,怎么改背景色呢??... 急求啊,而且 我的控件模版里面定义的它的样式,怎么改背景色呢?? 展开
 我来答
百度网友5cf2587
2015-08-05 · TA获得超过233个赞
知道小有建树答主
回答量:174
采纳率:100%
帮助的人:229万
展开全部
最近看到你问题不少,看得出在积极学习,但懒得回答,因为问题却描述不清,也不贴代码。
所有问题的答案,在网络上都可以找到。
这个问题如果处理?依据自己的开发经验提供一些实现方法。
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,具体自己搜索关键字学习。

根据问题,做个小总结,并不全面,希望对此问有所帮助。
更多追问追答
追问

谢谢你的认真的回答,我以后提问尽量贴上代码,主要是代码太多,三四个文件,以后一定认真的贴代码。我的控件是ConcentControl直接改Background没有效果啊

追答
模板中Border的Background设置为"{TemplateBinding Background}"
在按钮事件中通过控件的x:Name,myControl.Background = Brushes.Gray;就可以达到效果!
一般控件模板布局发生改变,才回考虑重置模板。
最好把代码贴出来,才能基于现在的设计提供修改意见。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式