有丰富的视觉行为WPF按钮的例子吗?

有丰富的视觉行为WPF按钮的例子吗?,wpf,button,styles,expression-blend,controltemplate,Wpf,Button,Styles,Expression Blend,Controltemplate,我正在寻找一个定制的WPF按钮的例子。 理想情况下,在类似的Blend/VS2013配置中,即VS2013测试解决方案,其中包括一个按钮项目,可在Blend for VS2013中编辑。 按钮应具有清晰的视觉外观,使其处于何种状态,即 正常=默认值 鼠标盖=内发光 按下=较小尺寸/较小阴影 ToggledOn=外发光 禁用=灰显 给出这样一个例子,我可以使用Blend调整状态的视觉外观 在应用程序方面,我只想实例化按钮,关联样式,设置背景颜色、图像/图标、文本标签、宽度和高度的属性 我似乎建议使

我正在寻找一个定制的WPF按钮的例子。 理想情况下,在类似的Blend/VS2013配置中,即VS2013测试解决方案,其中包括一个按钮项目,可在Blend for VS2013中编辑。 按钮应具有清晰的视觉外观,使其处于何种状态,即

正常=默认值 鼠标盖=内发光 按下=较小尺寸/较小阴影 ToggledOn=外发光 禁用=灰显 给出这样一个例子,我可以使用Blend调整状态的视觉外观

在应用程序方面,我只想实例化按钮,关联样式,设置背景颜色、图像/图标、文本标签、宽度和高度的属性

我似乎建议使用ControlTemplate样式,而不是子分类,请参阅

三个关键问题似乎是:

如何设置VS2013/blend项目结构,以便在一组源文件上交替使用这两种结构 如何计算ControlTemplate中的相对大小,即语法是什么 Width=Button.Width x 1.1设置相对于实际按钮大小的辉光延伸,该按钮大小不在模板中,但将在客户端应用程序UI设计中定义。 如何从按钮的基色计算相对颜色,即GradientStop color=button.BackgroundColor x 80%+White x 20%的WPF XAML语法是什么 这应该是一个非常普遍的需求,但谷歌没有帮助找到任何类似上述内容


非常感谢您对这三个关键问题中任何一个问题的帮助。

您的需求不需要定义新的ControlTemplate,可以通过使用触发器的样式来实现,例如:

如果在App.xaml资源中定义了该样式并提供了x:Key,则可以在应用程序中的任何位置访问该样式 使用ScaleTransform的ScaleX和ScaleY是相对值。 您需要自己的IValueConverter,然后使用转换器将目标颜色绑定到源颜色。
<Grid>
    <Grid.Resources>
        <Style TargetType="Button">
            <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
            <Style.Triggers>
                <Trigger Property="IsPressed" Value="True">
                    <Setter Property="RenderTransform">
                        <Setter.Value>
                            <ScaleTransform ScaleX="0.75" ScaleY="0.75"/>
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Grid.Resources>
    <Button Content="Click Me!" />
</Grid>