如何在wpf中制作按钮平面样式? 我试过BasedOn属性,但它不起作用。wpf平面按钮
wpf平面按钮
回答
只是为了让你开始:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Page.Resources>
<Style x:Key="Flat">
<Setter Property="Control.Background" Value="{x:Null}" />
<Setter Property="Control.BorderBrush" Value="{x:Null}" />
<Style.Triggers>
<Trigger Property="Control.IsMouseOver" Value="True">
<Setter Property="Control.Background" Value="{x:Null}" />
<Setter Property="Control.BorderBrush" Value="{x:Null}" />
<Setter Property="Control.FontWeight" Value="Bold" />
</Trigger>
<Trigger Property="Control.IsFocused" Value="True">
<Setter Property="Control.FontWeight" Value="Bold" />
</Trigger>
</Style.Triggers>
</Style>
</Page.Resources>
<StackPanel>
<Button Style="{StaticResource Flat}">Hello</Button>
</StackPanel>
</Page>
然后你有一个米伦等方式来做到这一点,甚至改变了ControlTemplate
完成重新定义按钮
无法让此工作。您的示例样式不会删除Button的边框或背景。从这个例子中唯一可行的是,按钮文本在悬停时变为粗体。 – Johncl 2011-11-28 15:25:24
@Johncl在下面看到我的答案 – 2013-01-20 05:15:45
快速的解决方案:嵌入按钮在<ToolBar/>
声明:将添加一个工具栏铬,在某些情况下可能是一个问题。 (感谢Indeera)
这增加了一个工具栏镶边,并不能解决问题。 – Indy9000 2012-02-27 14:16:41
添加工具栏chrome:yes;不解决问题:主观 – 2012-03-11 15:10:35
要添加到爱德华多的答案,该解决方案摆脱任何额外的造型,如按钮周围的边框如果厚度设置为0
您可以根据需要添加额外的样式:
<Style x:Key="Flat" TargetType="Button">
<Setter Property="Background" Value="{x:Null}" />
<Setter Property="BorderBrush" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsKeyboardFocused" Value="true">
</Trigger>
<Trigger Property="IsDefaulted" Value="true">
</Trigger>
<Trigger Property="IsPressed" Value="true">
</Trigger>
<Trigger Property="ToggleButton.IsChecked" Value="true">
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{x:Null}" />
<Setter Property="BorderBrush" Value="{x:Null}" />
<Setter Property="FontWeight" Value="Normal" />
</Trigger>
<Trigger Property="IsFocused" Value="True">
<Setter Property="FontWeight" Value="Normal" />
</Trigger>
</Style.Triggers>
</Style>
我要添加的另一个改进是为'
更简单的解决方案在这里使用已定义工具栏按钮的风格:
<Button Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"
Content="You know I'm flat..." />
如果你只是需要让按钮“隐形”,但亮点能够:
bb.Background = new SolidColorBrush(Colors.White); bb.BorderBrush = new SolidColorBrush(Colors.White);
- 1. RadioButton作为平面按钮?
- 2. 从ASP.NET页面按钮启动WPF页面按钮单击
- 3. WPF + C#按钮连接页面
- 4. 在页面中水平对齐按钮
- 5. Winform平面按钮禁用外观
- 6. WPF C#按钮,等待按下按钮
- 7. WPF纹理按钮
- 8. WPF按钮模板
- 9. WPF画布按钮?
- 10. wpf按钮点击
- 11. 按钮颜色WPF
- 12. WPF按钮样式
- 13. WPF取消按钮
- 14. WPF旋转按钮
- 15. Wpf对齐按钮
- 16. WPF按钮样式
- 17. WPF链接按钮
- 18. WPF usercontrol circlesector按钮
- 19. WPF按钮动画
- 20. WPF ComboboxItems与按钮
- 21. WPF图像按钮
- 22. 按钮内部按钮(WPF + Caliburn.Micro)
- 23. C#WPF按钮,按钮坐标阵列
- 24. 将按钮上的文字按钮+ WPF
- 25. FBLoginView按钮平铺
- 26. colorControlHighlight在按下时不会改变平面按钮的颜色
- 27. 将旋转/平移到按钮meshgeometry3d wpf c#
- 28. WPF导航通过按钮
- 29. WPF:检测转换按钮
- 30. WPF动画多个按钮
另请参阅:http://stackoverflow.com/questions/697381/setting-button-flatstyle-in-wpf特别是如果你喜欢单线。 – greenoldman 2011-04-24 11:07:12