100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > WPF窗体更换背景颜色

WPF窗体更换背景颜色

时间:2020-11-29 10:58:55

相关推荐

WPF窗体更换背景颜色

窗体界面如下:

界面设计代码如下:

<Window xmlns:dui="clr-namespace:WPF.DazzleUI.Controls;assembly=WPF.DazzleUI"MouseLeftButtonDown="Window_MouseLeftButtonDown" ResizeMode="NoResize" Loaded="ColorWindow_Loaded"><Grid Margin="0,0,39,0"><Grid.RowDefinitions><RowDefinition Height="28" /><RowDefinition Height="28" /><RowDefinition Height="28" /><RowDefinition Height="28" /><RowDefinition Height="*" /></Grid.RowDefinitions><Grid.ColumnDefinitions><ColumnDefinition Width="65*" /><ColumnDefinition Width="210*" /><ColumnDefinition Width="10*" /></Grid.ColumnDefinitions><Label Grid.Row="0" HorizontalContentAlignment="Right" Visibility="Collapsed">透明度:</Label><Label Grid.Row="1" HorizontalContentAlignment="Right" Foreground="Black" FontSize="14">红色:</Label><Label Grid.Row="2" HorizontalContentAlignment="Right" Foreground="Black" FontSize="14">绿色:</Label><Label Grid.Row="3" HorizontalContentAlignment="Right" Foreground="Black" FontSize="14">蓝色:</Label><Slider Grid.Row="0" Grid.Column="1" Margin="3" Name="a" SmallChange="1" LargeChange="15" Maximum="255" Value="255" Visibility="Collapsed"/><Slider Grid.Row="1" Grid.Column="1" Margin="3" Name="r" SmallChange="1" LargeChange="15" Maximum="255" Value="255" /><Slider Grid.Row="2" Grid.Column="1" Margin="3" Name="g" SmallChange="1" LargeChange="15" Maximum="255" Value="255" /><Slider Grid.Row="3" Grid.Column="1" Margin="3" Name="b" SmallChange="1" LargeChange="15" Maximum="255" Value="255" /><Button x:Name="button" Content="确定" HorizontalAlignment="Left" Margin="410,174,0,0" Grid.Row="4" VerticalAlignment="Top" Width="75" Click="button_Click" Grid.Column="1" FontSize="20" Background="#FFF7830E"/></Grid></Window>

public override void EndInit(){a.ValueChanged += new RoutedPropertyChangedEventHandler<double>(a_ValueChanged);r.ValueChanged += new RoutedPropertyChangedEventHandler<double>(r_ValueChanged);g.ValueChanged += new RoutedPropertyChangedEventHandler<double>(g_ValueChanged);b.ValueChanged += new RoutedPropertyChangedEventHandler<double>(b_ValueChanged);base.EndInit();}

public static Color SelectColor { get; set; }private void a_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e){SelectColor = Color.FromArgb((byte)a.Value, (byte)r.Value, (byte)g.Value, (byte)b.Value);ColorChangeEvent(SelectColor);//ColorSee.Fill = new SolidColorBrush(SelectColor);ColorWindow.Background = new SolidColorBrush(SelectColor);}private void r_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e){SelectColor = Color.FromArgb((byte)a.Value, (byte)r.Value, (byte)g.Value, (byte)b.Value);ColorChangeEvent(SelectColor);//ColorSee.Fill = new SolidColorBrush(SelectColor);ColorWindow.Background = new SolidColorBrush(SelectColor);}private void g_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e){SelectColor = Color.FromArgb((byte)a.Value, (byte)r.Value, (byte)g.Value, (byte)b.Value);ColorChangeEvent(SelectColor);//ColorSee.Fill = new SolidColorBrush(SelectColor);ColorWindow.Background = new SolidColorBrush(SelectColor);}private void b_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e){SelectColor = Color.FromArgb((byte)a.Value, (byte)r.Value, (byte)g.Value, (byte)b.Value);ColorChangeEvent(SelectColor);//ColorSee.Fill = new SolidColorBrush(SelectColor);ColorWindow.Background = new SolidColorBrush(SelectColor);}public event Action<Color> ColorChangeEvent;private void button_Click(object sender, RoutedEventArgs e){r.Value = r.Value;g.Value = g.Value;b.Value = b.Value;GlobalData.r = r.Value;GlobalData.g = g.Value;GlobalData.b = b.Value;GlobalData.SelectColor = SelectColor;this.Hide();MainWindow main = new MainWindow();main.ShowDialog();}private void ColorWindow_Loaded(object sender, RoutedEventArgs e){r.Value = GlobalData.r;g.Value = GlobalData.g;b.Value = GlobalData.b;}

在全局变量里面:

public static double r;public static double g;public static double b;public static Color SelectColor { get; set; }

给其他窗体在加载事件里面给背景颜色附上全局变量颜色的值,以主窗体为例:

if(GlobalData.SelectColor.A != 0){grid1.Background = new SolidColorBrush(GlobalData.SelectColor);grid.Background = new SolidColorBrush(Colors.Black);frmMainBorder.Background = new SolidColorBrush(GlobalData.SelectColor);}

效果如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。