在C# WPF中,样式是用于定义控件的视觉外观的一组属性集合。你可以使用XAML或C#代码来设置样式。这里有一些关于如何在C# WPF中设置样式的示例。
在XAML文件中,你可以为控件定义一个样式,如下所示:
<Window x:Class="WpfApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="450" Width="800">
<Window.Resources>
<Style TargetType="Button">
<Setter Property="Background" Value="Blue"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Border Background="{TemplateBinding Background}" BorderBrush="Black" BorderThickness="1"/>
<TextBlock Text="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Button Content="Click me!" Style="{StaticResource Button}"/>
</Grid>
</Window>
在这个例子中,我们定义了一个针对Button
控件的样式,设置了背景颜色、前景颜色和模板。然后,我们将这个样式应用到Button
控件上。
在C#代码中,你可以使用Style
类来创建一个样式,并将其应用到控件上。以下是一个示例:
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
namespace WpfApp
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
// 创建一个样式
Style buttonStyle = new Style(typeof(Button));
buttonStyle.Setters.Add(new Setter(Button.BackgroundProperty, Brushes.Blue));
buttonStyle.Setters.Add(new Setter(Button.ForegroundProperty, Brushes.White));
// 创建一个控制模板
ControlTemplate controlTemplate = new ControlTemplate(typeof(Button));
controlTemplate.VisualTree = new FrameworkElementFactory(typeof(Grid));
FrameworkElementFactory borderFactory = new FrameworkElementFactory(typeof(Border));
borderFactory.Properties.Add(Border.BackgroundProperty, new SolidColorBrush(Colors.Blue));
borderFactory.Properties.Add(Border.BorderBrushProperty, new SolidColorBrush(Colors.Black));
borderFactory.Properties.Add(Border.BorderThicknessProperty, new Thickness(1));
controlTemplate.VisualTree.AppendChild(borderFactory);
FrameworkElementFactory textBlockFactory = new FrameworkElementFactory(typeof(TextBlock));
textBlockFactory.Properties.Add(TextBlock.TextProperty, new Binding("Content"));
textBlockFactory.Properties.Add(TextBlock.HorizontalAlignmentProperty, new HorizontalAlignmentConverter().ConvertFromString("Center"));
textBlockFactory.Properties.Add(TextBlock.VerticalAlignmentProperty, new VerticalAlignmentConverter().ConvertFromString("Center"));
controlTemplate.VisualTree.AppendChild(textBlockFactory);
buttonStyle.Setters.Add(new Setter(ControlTemplateProperty, controlTemplate));
// 将样式应用到按钮控件上
Button button = new Button { Content = "Click me!" };
button.Style = buttonStyle;
grid1.Children.Add(button);
}
}
}
在这个例子中,我们使用C#代码创建了一个针对Button
控件的样式,设置了背景颜色、前景颜色和控制模板。然后,我们将这个样式应用到Button
控件上。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。