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



我正在寻找一个自定义WPF按钮的示例。理想情况下是在喜欢的Blend/VS2013配置中,即VS2013测试解决方案,该解决方案包括一个按钮项目,可以在Blend for VS2013中编辑。按钮应具有视觉外观,以清楚地表明其处于什么状态,即

  • 正常=默认
  • MouseOver=内部发光
  • Pressed=较小的尺寸/较小的阴影
  • ToggedOn=外部辉光
  • 禁用=灰显

给定这样一个例子,我可以使用Blend调整状态的视觉外观。

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

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

三个关键问题似乎是:

  • 如何设置VS2013/混合项目结构,以便在一组源文件上互换使用
  • 如何计算ControlTemplate中的相对大小,即语法是什么Width=Button。Width x 1.1设置相对于实际按钮大小的辉光扩展,该按钮大小不在模板中,但将在客户端应用程序UI设计中定义
  • 如何根据按钮的基本颜色计算相对颜色,即GradientStop color=button.BackgroundColor x 80%+White x 20%的WPF XAML语法是什么

这应该是一个非常常见的需求,但谷歌在找到类似上面的东西方面没有帮助。

如能在这三个关键问题中的任何一个问题上提供帮助,我们将不胜感激。

您的需求不需要定义新的ControlTemplate,可以通过StyleTriggers来实现,例如:

<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>
  • 如果在App.xaml资源中定义并给定x:Key,则可以在应用程序中的任何位置访问Style
  • 使用ScaleTransform的ScaleX和ScaleY是相对值
  • 您将需要自己的IValueConverter,然后使用转换器将目标颜色绑定到源颜色

相关内容

  • 没有找到相关文章

最新更新