首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建几个自定义按钮模板

创建几个自定义按钮模板
EN

Stack Overflow用户
提问于 2010-08-27 02:51:55
回答 2查看 455关注 0票数 0

我只是想知道我是否可以在WPF中创建几个按钮模板,然后通过“声明”按钮模板名(或者您建议的其他方法)将模板分配给一个特定的按钮。

我要创建的按钮模板是:

带有黑色背景的

  1. 按钮,圆角,文本显示带有银色背景的
  2. 按钮,圆角,文本显示,文本显示旁边的文本
  3. 按钮旁边有金色背景,文本显示用不同的图像旁边的文本

我将生成的按钮的样式取决于我将“调用”哪个按钮模板,其中:

如果选择= 1,则使用模板1。(这将在C#中完成)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-27 02:58:08

您可以制作任意数量的按钮(或任何其他控件)模板。您可以使用样式上的x:key="“属性来”命名“您的模板,并在”去疲劳“按钮上设置样式.

代码语言:javascript
运行
复制
<Style x:Name="MyButton1">
....
</Style>

然后在你的按钮上..。

使用动态资源..。

代码语言:javascript
运行
复制
<Button Style="{DynamicResource MyButton1}"/> 

或者您可以使用StaticResource代替

代码语言:javascript
运行
复制
<Button Style="{StaticResource MyButton1}"/> 
票数 2
EN

Stack Overflow用户

发布于 2010-08-27 03:09:36

实现这一目标的一种方法是使用触发器。根据其绑定的属性的值,为按钮提供选择其模板的样式。

我还没有把它放在XAML编辑器中,所以可能会出现语法错误,但这是要点:

代码语言:javascript
运行
复制
<Style TargetType="Button">
    <Style.Setters>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <!-- default template -->
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style.Setters>
    <Style.Triggers>
        <DataTrigger Binding="{Binding SomeValue}" Value="1">
            <DataTrigger.Setters>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            <!-- template when SomeValue == 1 -->
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </DataTrigger.Setters>
        </DataTrigger>
        <DataTrigger Binding="{Binding SomeValue}" Value="2">
            <DataTrigger.Setters>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="Button">
                            <!-- template when SomeValue == 2 -->
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </DataTrigger.Setters>
        </DataTrigger>
    </Style.Triggers>
</Style>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3581021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档