覆盖wpf中按钮的默认视觉样式的简单工作示例
我想为我的按钮创建自定义视觉样式。覆盖wpf中按钮的默认视觉样式的简单工作示例,wpf,vb.net,button,Wpf,Vb.net,Button,我想为我的按钮创建自定义视觉样式。 我需要一个简单的工作示例,说明如何覆盖按钮的默认视觉样式。以及如何应用它的简单解释。 我想让一些东西发挥作用,这样我就可以从那里开始,进一步试验我的方法 我尝试添加一个新的追索权词典,如下所示: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2
我需要一个简单的工作示例,说明如何覆盖按钮的默认视觉样式。以及如何应用它的简单解释。 我想让一些东西发挥作用,这样我就可以从那里开始,进一步试验我的方法 我尝试添加一个新的追索权词典,如下所示:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style x:Key="mstyle" TargetType="Button">
<Setter Property="FontWeight" Value="Bold" />
</Style>
</ResourceDictionary>
当我尝试运行此操作时,出现一个错误,即无法找到“mstyle”资源。在大多数情况下,您不需要任何代码来执行此操作,您所需要的只是定义一个自定义样式,以资源字典或窗口资源中的按钮为目标。示例:
<Style x:Key="DarkStyleButton" TargetType="{x:Type Button}">
<Setter Property="Background" Value="#373737" />
<Setter Property="Foreground" Value="White" />
<Setter Property="FontFamily" Value="Segoe UI" />
<Setter Property="FontSize" Value="12" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border CornerRadius="4" Background="{TemplateBinding Background}">
<Grid>
<ContentPresenter x:Name="MyContentPresenter" Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#E59400" />
<Setter Property="Foreground" Value="White" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="White" />
<Setter Property="Foreground" Value="Black" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="Gray" />
<Setter Property="Foreground" Value="LightGray" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
- 首先设置要自定义的属性的值
- 然后设置按钮模板,不要忘记添加 将保存按钮内容的ContentPresenter
- 最后定义触发器来处理鼠标、单击和其他任何操作 否则,您需要在触发时设置自定义外观(例如 除盐/启用)
<Button x:Name="BrowseButton" Margin="5" Style="{StaticResource DarkStyleButton}" ToolTip="tooltip about the button">
<Button.Content>
<StackPanel Orientation="Horizontal">
<Image Source="../BrowseImage.png"/>
<TextBlock Text="Browse" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5"></TextBlock>
</StackPanel>
</Button.Content>
</Button>
嗯,我做错了什么。我打开了一个新的解决方案。我添加了一个新的追索权词典,并复制了您的示例。之后,我在主窗口的xaml中复制了按钮定义。按钮已生成,但具有默认样式,style=“{StaticResource DarkStyleButton}”
作为错误突出显示,显示为:“无法解析追索权”DarkStyleButton。“您是否将资源dico添加到当前窗口/页面资源:是。”。就这样!非常感谢你!
<Button x:Name="BrowseButton" Margin="5" Style="{StaticResource DarkStyleButton}" ToolTip="tooltip about the button">
<Button.Content>
<StackPanel Orientation="Horizontal">
<Image Source="../BrowseImage.png"/>
<TextBlock Text="Browse" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="5"></TextBlock>
</StackPanel>
</Button.Content>
</Button>