三、实验内容 1、编写WPF应用程序实现一个调色板: (1)调色板区域的背景色由Color.FromArgb方法获得,该方法的参数即可以从右侧的文本框获取,也可以从下方的滑块获取。 (2)当修改文本框的值时,滑块也自动跟着变化。另外,要求4个文本框的取值必须都在0~225,若用户输入错误,则弹出对话框提示。 (3)当拖动滑块改变大小时,文本框中的值也自动跟着变化。
时间: 2024-03-04 09:49:15 浏览: 17
好的,下面是一个实现该调色板的示例代码:
```
<Window x:Class="ColorPicker.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Color Picker" Height="350" Width="525">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="4*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Rectangle Grid.Row="0" Grid.Column="0" Fill="{Binding SelectedColor}" />
<StackPanel Grid.Row="0" Grid.Column="1">
<StackPanel Orientation="Horizontal" Margin="5">
<TextBlock Text="R:"/>
<TextBox x:Name="txtR" Text="{Binding R, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="50" Margin="5"/>
<Slider x:Name="sldR" Value="{Binding R, Mode=TwoWay}" Minimum="0" Maximum="255" Width="150" Margin="5"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="5">
<TextBlock Text="G:"/>
<TextBox x:Name="txtG" Text="{Binding G, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="50" Margin="5"/>
<Slider x:Name="sldG" Value="{Binding G, Mode=TwoWay}" Minimum="0" Maximum="255" Width="150" Margin="5"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="5">
<TextBlock Text="B:"/>
<TextBox x:Name="txtB" Text="{Binding B, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="50" Margin="5"/>
<Slider x:Name="sldB" Value="{Binding B, Mode=TwoWay}" Minimum="0" Maximum="255" Width="150" Margin="5"/>
</StackPanel>
</StackPanel>
<StackPanel Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Center">
<Button Content="OK" Width="100" Margin="5"/>
<Button Content="Cancel" Width="100" Margin="5"/>
</StackPanel>
</Grid>
</Window>
```
在这个代码中,我们使用了一个矩形来展示当前选定的颜色,用四个文本框和滑块来控制颜色的 RGB 值。我们还为每个属性创建了一个绑定,以便更方便地设置和获取值。注意,将绑定的模式设置为“TwoWay”可以在更改文本框或滑块值时更新其他控件,而“UpdateSourceTrigger=PropertyChanged”则可以实现实时更新。
此外,我们还为每个文本框设置了一个验证规则,以确保输入的值在 0~255 范围内。如果输入错误,则会弹出一个对话框提示用户。
这只是一个简单的示例,您可以根据需要进行修改和扩展。