WPF备忘录(5)怎样修改模板中的控件

     首先,想问大家一个问题,你们如果要给一个Button添加背景图片会怎么做?(呵呵,这个问题又点小白哈)

是这样吗?

        <Button  Height="57" HorizontalAlignment="Left" Margin="106,86,0,0" Name="button1" 
           VerticalAlignment="Top" Width="147" BorderThickness="0">
            <Button.Background>
                <ImageBrush ImageSource="/WpfProgressBarDemo;component/Images/btn_13.png" />
            </Button.Background>
        </Button>

如果也是这样的话,那你们有没有碰到这个问题呢,当鼠标放到按钮上,背景会被改变呢?如图:

正常显示

鼠标放到按钮上

按钮就变成这样了,你们有没有碰到这样的事情?那你们又是怎么解决的呢,希望高手指点下。不胜感激……

我们的解决方案是做一个模板,把背景图片当作内容赋给Button代码如下:

             <Button  Name="btnSure" Click="btnSure_Click" Margin="10"   >
                <Button.Template>
                <ControlTemplate x:Name="ctSure">
                    <ContentControl>
                   <Image Source="/Oland.HSS.InHospital;component/Pictures/maintenance/1.png"></Image>
                    </ContentControl>
                    </ControlTemplate>
                </Button.Template>
            </Button>

这样就可以解决了刚才的那个问题,你们有好的建议吗?

下面又出现新的问题了,我想根据业务需要从后台改变按钮背景怎么办?呵呵,标题中的中的问题来(怎样修改模板中的控件):

其实也简单,就直接上代码了:

  private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            if (!IsInMaintenance)
            {
                ControlTemplate template = btnSure.FindName("ctSure") as ControlTemplate;

                if (template != null)
                {
                    Image img = template.FindName("imgWork", btnSure) as Image;
                    img.Source = new BitmapImage(new Uri(@"../Pictures/maintenance/3.png", 
                                                       UriKind.Relative));
                }
            }
        }

 如果你把模板放在Resource里面你可以这样写

ControlTemplate template = (ControlTemplate)this.TryFindResource("模板名称");

   呵呵,很简单吧?其实我还有另外一个问题,也同样想征求大家的建议?我写了触发器,就是鼠标放上去会改变背景,直接鼠标操作没问题,但是在触屏上就需要点击两次才能执行不知道是什么状况,把触发器去了就没事了……希望大神点意见……

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏移动开发之家

从Android到React Native开发(一、入门)

大家好┏ (ω)=,许久不见,一不小心断更就成为了一种习惯,因为最近掉React Native的坑里,无法自拔啊~(╯‵□′)╯︵┻━┻。 关于React N...

522
来自专栏移动开发之家

从Android到React Native开发(一、入门)

 大家好┏ (^ω^)=,许久不见,一不小心断更就成为了一种习惯,因为最近掉React Native的坑里,无法自拔啊~(╯‵□′)╯︵┻━┻。

732
来自专栏菜鸟前端工程师

html+css学习笔记011-表单

533
来自专栏贾鹏辉的技术专栏@CrazyCodeBoy

React Native 每日一学(Learn a little every day)

本文出自《React Native学习笔记》系列文章。 每天一个知识点(技巧,经验,填坑日记等),每天学一点,离大神近一点。 汇聚知识,分享精华。 如果你是一...

3359
来自专栏hotqin888的专栏

HydroCMS更换手风琴式侧栏metismenu

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

522
来自专栏河湾欢儿的专栏

5.模块化<2>

怎么做? 1.为模块分类命名如(m-,md-)表示一个模块 2.唯一的根节点 3.使用以主选择器开头的后代选择器

832
来自专栏葡萄城控件技术团队

你应该知道的15个Silverlight诀窍

我热爱Silverlight,并且身体力行写了很多Silverlight程序,也讨论了很多关于Silverlight的技术。对于刚刚接触Silverlight的...

1706
来自专栏phodal

【开源】2md:将复制的内容、网页转成 markdown

如果一个 Markdown 编辑器不能解决问题,那么就用两个编辑器。 作为一个作者、程序员,兼知名的 markdown 程序员,我总是要在 Markdown、H...

3158
来自专栏九彩拼盘的叨叨叨

学习纲要:常用样式

ps: 学习目标看着很少,但学习目标的第一点有很多要学的。目前写的比较粗,以后我会细化。

552
来自专栏walterlv - 吕毅的博客

使用 Microsoft.UI.Xaml 解决 UWP 控件和对老版本 Windows 10 的兼容性问题

发布于 2018-07-21 13:51 更新于 2018-07...

141

扫描关注云+社区