如何使用WPF同时选择和更改多个控件的值

本文关键字:控件 WPF 何使用 选择 | 更新日期: 2023-09-27 18:30:12

我是WPF的新手,我想选择多个控件(假设我用鼠标画一个矩形,然后选择这个形状内的控件),并更改它们的值。我该怎么做?顺便说一句,我正在使用MVVM。

在下面的例子中,我有3个滑块,我希望能够选择它们,这样我就可以使用键盘一次控制所有滑块。我知道我不能同时将键盘焦点设置为其中的3个。我该如何完成这项任务?

    <Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <Slider IsSnapToTickEnabled="True" Grid.Column="0" Ticks="{Binding Slider1Values}" Value="{Binding Slider1Selected}" Orientation="Vertical" HorizontalAlignment="Center" Margin="10"/>
    <Slider IsSnapToTickEnabled="True" Grid.Column="1" Ticks="{Binding Slider2Values}" Value="{Binding Slider2Selected}" Orientation="Vertical" HorizontalAlignment="Center" Margin="10"/>
    <Slider IsSnapToTickEnabled="True" Grid.Column="2" Ticks="{Binding Slider3Values}" Value="{Binding Slider3Selected}" Orientation="Vertical" HorizontalAlignment="Center" Margin="10"/>
</Grid>

如何使用WPF同时选择和更改多个控件的值

KeyUp事件(或您选择的任何事件)中,修改所有3个绑定的值:

    private void Window_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == (Keys.Up)) {
            newValue = oldValue + 10;
        } else if (e.KeyCode == (Keys.Down)) {
            newValue = oldValue - 10;
        }
        this.Slider1Selected = newValue;
        this.Slider2Selected = newValue;
        this.Slider3Selected = newValue;
    }