[英]Changing controls dynamically by clicking wpf
我想在WPF中实现某种行为。 我四处寻找安静的时间,并决定对帮助进行排序。 我要实现以下行为。
我有一个TextBlock
和一个ComboBox
彼此叠放。 我希望ComboBox
在TextBlock
被聚焦时出现。 同样,一旦完成了ComboBox
的工作(例如,选择了ComboBoxItem
)。 我想回到我的旧视图(即顶部的TextBlock
)。 任何人都可以展示这种行为的示例,或者只是指导我一些事情。
我有一个ZIndex方法,我尝试如下。
<Grid>
<Button Name="Button1" Canvas.ZIndex="4" Content="Button1" Canvas.Top="100" Width="163" Height="58" FontSize="26" Click="Button1_Click" />
<Button Name="Button2" Canvas.ZIndex="3" Content="Button2" Canvas.Top="100" Canvas.Left="130" Width="163" Height="58" FontSize="26" Click="Button2_Click" />
</Grid>
和背后的代码
private void Button1_Click(object sender, RoutedEventArgs e)
{
Canvas.SetZIndex(sender as UIElement, 1);
}
private void Button2_Click(object sender, RoutedEventArgs e)
{
Canvas.SetZIndex(sender as UIElement, 0);
}
不知道我是否正确地理解了您的需求,但这就是我想您要的:
XAML:
<Grid Width="50">
<ComboBox x:Name="cb" SelectedIndex="0" ItemsSource="{Binding MyObservableCollection}"/>
<TextBox x:Name="tb" Text="{Binding ElementName=cb,Path=SelectedItem}">
<TextBox.Style>
<Style TargetType="TextBox">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=tb, Path=IsFocused}" Value="true">
<Setter Property="Visibility" Value="Hidden"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</Grid>
的DataContext:
private ObservableCollection<string> myObservableCollection = new ObservableCollection<string>{ "one", "two", "tree" };
public ObservableCollection<string> MyObservableCollection
{
get => this.myObservableCollection;
set => SetField(ref this.myObservableCollection, value);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.