WPF滑块到“选定的文本框”(获得焦点)

时间:2013-09-29 22:32:19

标签: wpf textbox slider

将TextBox动态绑定到Slider的正确方法是什么?

这个想法是拥有许多文本框。当用户单击TextBox时,它会更改其Background Color(显示它具有焦点),然后如果用户更改了Slider的值,则Text属性Selected Textbox应该改变。

2 个答案:

答案 0 :(得分:1)

我希望将TextBoxes嵌入ListBox中。这样,您可以使用列表框来处理其SelectedItem所关注内容的定义,然后将滑块绑定到listitees selecteditem。

答案 1 :(得分:0)

正如@AlSki提到的那样,您可以使用ListBox来保留所有TextBoxes并绑定到SelectedItem

示例:

<StackPanel>
    <Slider Value="{Binding SelectedItem.Text, ElementName=listbox}"/>
    <ListBox Name="listbox">
        <TextBox />
        <TextBox />
        <TextBox />
        <TextBox />
    </ListBox>
</StackPanel>

enter image description here


或者如果TextBoxes以不能与ItemsControl一起使用的方式布局,您可以通过创建TextBox Style并设置绑定来执行此操作到触发器中的Slider

示例:

 <StackPanel>
    <StackPanel.Resources>
        <Style TargetType="TextBox">
            <Setter Property="Text" Value="{Binding RelativeSource={RelativeSource Self}, Path=Text, Mode=OneWay}" />
            <Setter Property="Background" Value="White" />
            <Style.Triggers>
                <Trigger Property="IsFocused" Value="true">
                    <Setter Property="Background" Value="Yellow" />
                    <Setter Property="Text" Value="{Binding ElementName=slider, Path=Value, Mode=OneWay}" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </StackPanel.Resources>
    <Slider Name="slider" Focusable="False"/>
    <TextBox />
    <TextBox />
    <TextBox />
    <TextBox />
</StackPanel>

enter image description here