br.ImageSource = new BitmapImage(new Uri(@"F:\Study\\WpfApplication2\WpfApplication2\Repeat2(1).png", UriKind.Absolute))
this.Background = br
这样就好了
你那个 圆形按钮 又不需要点击,只是作为一个 状态来显示, 写个按钮干什么。放个Border或者Elispe 不好嘛。点击打开串口之后 改变border的Background 或者Elispe的Fill 不就可以改变颜色了。最近看到你问题不少,看得出在积极学习,但懒得回答,因为问题却描述不清,也不贴代码。所有问题的答案,在网络上都可以找到。
这个问题如果处理?依据自己的开发经验提供一些实现方法。
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,具体自己搜索关键字学习。
根据问题,做个小总结,并不全面,希望对此问有所帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)