📜  wpf 在代码中设置颜色 - C# (1)

📅  最后修改于: 2023-12-03 15:06:02.459000             🧑  作者: Mango

WPF 在代码中设置颜色 - C#

WPF (Windows Presentation Foundation) 是一个基于 .NET Framework 的 UI 框架,可以让开发者创建各种丰富的桌面应用程序。在 WPF 中设置颜色,可以使用 C# 代码来实现。

1. 在 XAML 中使用静态字段

在 XAML 中,可以使用 StaticResourceDynamicResource 来引用静态字段。以下是一个示例:

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:system="clr-namespace:System;assembly=mscorlib"
        Title="MainWindow" Height="450" Width="800">
    <Window.Resources>
        <system:Double x:Key="FontSize">16</system:Double>
        <SolidColorBrush x:Key="ForegroundColor" Color="#FF00FF"></SolidColorBrush>
        <SolidColorBrush x:Key="BackgroundColor" Color="{StaticResource ForegroundColor}"></SolidColorBrush>
    </Window.Resources>
    <Grid Background="{StaticResource BackgroundColor}">
        <TextBlock Foreground="{StaticResource ForegroundColor}"
                   FontSize="{StaticResource FontSize}"
                   Text="Hello, World!"></TextBlock>
    </Grid>
</Window>

在以上代码中,我们在 Window.Resources 中定义了两个颜色相关的字段 ForegroundColorBackgroundColor,其中 ForegroundColor 的颜色是 #FF00FF(紫色),BackgroundColor 的颜色是 ForegroundColor 的引用。然后,在 Grid 控件的 Background 属性和 TextBlock 控件的 ForegroundFontSize 属性中分别引用这些字段。

2. 在 C# 代码中使用 SolidColorBrush

SolidColorBrush 是 WPF 中用于表示纯色笔刷的类。可以通过以下方式来创建一个 SolidColorBrush 对象:

SolidColorBrush brush = new SolidColorBrush(color);

其中 color 是一个 Color 结构体,它包含了红、绿、蓝和透明度四个分量,以下是一个示例:

Color color = Color.FromRgb(255, 0, 255);
SolidColorBrush brush = new SolidColorBrush(color);
textBlock.Foreground = brush;

在以上代码中,我们创建了一个紫色的 SolidColorBrush,并将其应用到了一个 TextBlock 控件的 Foreground 属性中。

3. 在 C# 代码中使用 LinearGradientBrush

LinearGradientBrush 是 WPF 中用于表示线性渐变笔刷的类。可以通过以下方式来创建一个 LinearGradientBrush 对象:

LinearGradientBrush brush = new LinearGradientBrush(startColor, endColor, angle);

其中 startColorendColor 分别是渐变的起始颜色和结束颜色,angle 是渐变的方向。

以下是一个示例:

Color startColor = Colors.Red;
Color endColor = Colors.Blue;
double angle = 45;
LinearGradientBrush brush = new LinearGradientBrush(startColor, endColor, angle);
textBlock.Foreground = brush;

在以上代码中,我们创建了一个从红色到蓝色的线性渐变笔刷,并将其应用到了一个 TextBlock 控件的 Foreground 属性中。

4. 在 C# 代码中使用 RadialGradientBrush

RadialGradientBrush 是 WPF 中用于表示径向渐变笔刷的类。可以通过以下方式来创建一个 RadialGradientBrush 对象:

RadialGradientBrush brush = new RadialGradientBrush(centerColor, gradientStopCollection);

其中 centerColor 是渐变的中心颜色,gradientStopCollectionGradientStop 对象的集合,每个对象包含了一个颜色和一个位置。

以下是一个示例:

Color centerColor = Colors.Yellow;
GradientStopCollection gradientStopCollection = new GradientStopCollection();
gradientStopCollection.Add(new GradientStop(Colors.Red, 0));
gradientStopCollection.Add(new GradientStop(Colors.Blue, 1));
RadialGradientBrush brush = new RadialGradientBrush(centerColor, gradientStopCollection);
textBlock.Foreground = brush;

在以上代码中,我们创建了一个以黄色为中心,从红色到蓝色的径向渐变笔刷,并将其应用到了一个 TextBlock 控件的 Foreground 属性中。

结论

以上是在 WPF 中使用 C# 代码设置颜色的方法。我们可以通过静态字段、SolidColorBrush、LinearGradientBrush 和 RadialGradientBrush 来定义和使用颜色。这些方法可以让我们更加灵活和便捷地管理 WPF 应用程序中的颜色。