按钮的 WPF 样式
WPF style for buttons
我已经很长时间(将近 4 年)没有使用 WPF 了。但是现在开始再次使用它进行一些使用,你可以看到我最常问的问题之一是在 WPF 中。我提到的原因是因为我确实对 WPF 及其工作原理有一些了解。我的最新项目涉及使用 BLEND 实现非常好的 UI。
所以这里我有一个 Photoshop 布局,我正在尝试获得这个布局设计,
到目前为止我只有这个,
如果有人能指出我以下几点,我将不胜感激。
如何获得边框发光效果和曲线,以及如何将它们分组到单独文件中的特定样式并将其 link 到按钮。感谢您的时间和回答
编辑:使用我的样式代码。
我在 Custom_Styles.xaml(资源字典)中有以下样式代码
我如何 link 它到按钮?
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Keyboard_actual">
<Style x:Key="Button" TargetType="Button">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Border>
<Rectangle Margin="2" Stroke="#60000000" StrokeThickness="1" StrokeDashArray="1 2"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
对于边框发光效果,您可以添加一个 Drop Shadow Effect,其中 Shadow Depth
为 0,所需的颜色和按钮的白色边框刷。
要在单独的文件中创建样式,您需要像这样创建资源字典:
项目 ► 添加新项目... ► 资源字典
然后命名您的文件。在这个例子中,我将其命名为 Styles.xaml
.
现在打开你的 App.xaml 并将其放在 Application
标签中:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
<!--Put all previous resources in the App.xaml here-->
</ResourceDictionary>
</Application.Resources>
现在在 Styles.xaml 文件的 ResourceDictionary
标签内,放置样式。我也在研究一种风格。一旦我完成它,我将 post 它。
要link样式,使用:
<Button Style="{StaticResource Button}" .../>
它可能无法工作,因为密钥是 "Button"。如果它没有将其更改为 "ButtonStyle".
投影效果做得相当不错。
这是一个例子(放大 200%):
和XAML风格:
<Style x:Key="ButtonStyle" TargetType="Button">
<Setter Property="BorderBrush">
<Setter.Value>
<SolidColorBrush Color="#FF00C3BA"/>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0.8" CornerRadius="3">
<Border.Effect>
<DropShadowEffect Color="#FF72FFE5" ShadowDepth="0"/>
</Border.Effect>
<TextBlock Foreground="{TemplateBinding BorderBrush}" Text="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
这样使用:
<Grid Background="#FF171717">
<Button Content="Q" HorizontalAlignment="Left" Height="47" Margin="103,59,0,0" VerticalAlignment="Top" Width="50" FontSize="20" FontFamily="Segoe UI Light" Style="{StaticResource ButtonStyle}"/>
<Button Content="Y" HorizontalAlignment="Left" Height="47" Margin="378,59,0,0" VerticalAlignment="Top" Width="50" FontSize="20" FontFamily="Segoe UI Light" Style="{StaticResource ButtonStyle}"/>
<Button Content="T" HorizontalAlignment="Left" Height="47" Margin="323,59,0,0" VerticalAlignment="Top" Width="50" FontSize="20" FontFamily="Segoe UI Light" Style="{StaticResource ButtonStyle}"/>
<Button Content="R" HorizontalAlignment="Left" Height="47" Margin="268,59,0,0" VerticalAlignment="Top" Width="50" FontSize="20" FontFamily="Segoe UI Light" Style="{StaticResource ButtonStyle}"/>
<Button Content="E" HorizontalAlignment="Left" Height="47" Margin="213,59,0,0" VerticalAlignment="Top" Width="50" FontSize="20" FontFamily="Segoe UI Light" Style="{StaticResource ButtonStyle}"/>
<Button Content="W" HorizontalAlignment="Left" Height="47" Margin="158,59,0,0" VerticalAlignment="Top" Width="50" FontSize="20" FontFamily="Segoe UI Light" Style="{StaticResource ButtonStyle}"/>
</Grid>
我已经很长时间(将近 4 年)没有使用 WPF 了。但是现在开始再次使用它进行一些使用,你可以看到我最常问的问题之一是在 WPF 中。我提到的原因是因为我确实对 WPF 及其工作原理有一些了解。我的最新项目涉及使用 BLEND 实现非常好的 UI。 所以这里我有一个 Photoshop 布局,我正在尝试获得这个布局设计,
到目前为止我只有这个,
如果有人能指出我以下几点,我将不胜感激。
如何获得边框发光效果和曲线,以及如何将它们分组到单独文件中的特定样式并将其 link 到按钮。感谢您的时间和回答
编辑:使用我的样式代码。
我在 Custom_Styles.xaml(资源字典)中有以下样式代码 我如何 link 它到按钮?
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Keyboard_actual">
<Style x:Key="Button" TargetType="Button">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Border>
<Rectangle Margin="2" Stroke="#60000000" StrokeThickness="1" StrokeDashArray="1 2"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
对于边框发光效果,您可以添加一个 Drop Shadow Effect,其中 Shadow Depth
为 0,所需的颜色和按钮的白色边框刷。
要在单独的文件中创建样式,您需要像这样创建资源字典:
项目 ► 添加新项目... ► 资源字典
然后命名您的文件。在这个例子中,我将其命名为 Styles.xaml
.
现在打开你的 App.xaml 并将其放在 Application
标签中:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
<!--Put all previous resources in the App.xaml here-->
</ResourceDictionary>
</Application.Resources>
现在在 Styles.xaml 文件的 ResourceDictionary
标签内,放置样式。我也在研究一种风格。一旦我完成它,我将 post 它。
要link样式,使用:
<Button Style="{StaticResource Button}" .../>
它可能无法工作,因为密钥是 "Button"。如果它没有将其更改为 "ButtonStyle".
投影效果做得相当不错。
这是一个例子(放大 200%):
和XAML风格:
<Style x:Key="ButtonStyle" TargetType="Button">
<Setter Property="BorderBrush">
<Setter.Value>
<SolidColorBrush Color="#FF00C3BA"/>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="0.8" CornerRadius="3">
<Border.Effect>
<DropShadowEffect Color="#FF72FFE5" ShadowDepth="0"/>
</Border.Effect>
<TextBlock Foreground="{TemplateBinding BorderBrush}" Text="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
这样使用:
<Grid Background="#FF171717">
<Button Content="Q" HorizontalAlignment="Left" Height="47" Margin="103,59,0,0" VerticalAlignment="Top" Width="50" FontSize="20" FontFamily="Segoe UI Light" Style="{StaticResource ButtonStyle}"/>
<Button Content="Y" HorizontalAlignment="Left" Height="47" Margin="378,59,0,0" VerticalAlignment="Top" Width="50" FontSize="20" FontFamily="Segoe UI Light" Style="{StaticResource ButtonStyle}"/>
<Button Content="T" HorizontalAlignment="Left" Height="47" Margin="323,59,0,0" VerticalAlignment="Top" Width="50" FontSize="20" FontFamily="Segoe UI Light" Style="{StaticResource ButtonStyle}"/>
<Button Content="R" HorizontalAlignment="Left" Height="47" Margin="268,59,0,0" VerticalAlignment="Top" Width="50" FontSize="20" FontFamily="Segoe UI Light" Style="{StaticResource ButtonStyle}"/>
<Button Content="E" HorizontalAlignment="Left" Height="47" Margin="213,59,0,0" VerticalAlignment="Top" Width="50" FontSize="20" FontFamily="Segoe UI Light" Style="{StaticResource ButtonStyle}"/>
<Button Content="W" HorizontalAlignment="Left" Height="47" Margin="158,59,0,0" VerticalAlignment="Top" Width="50" FontSize="20" FontFamily="Segoe UI Light" Style="{StaticResource ButtonStyle}"/>
</Grid>