3
我有含有两个StackPanels,每个包含一个文本框和一个按钮的页面:隐藏/显示XAML元件或块LostFocus事件
<StackPanel x:Name="Row1">
<TextBox x:Name="TextBox1" Text="" GotFocus="OnFocusHandler" LostFocus="OffFocusHandler"/>
<Button x:Name="Button1" Content="Convert" Click="OnClickHandler" Visibility="Collapsed"/>
</StackPanel>
<StackPanel x:Name="Row2">
<TextBox x:Name="TextBox2" Text="" GotFocus="OnFocusHandler" LostFocus="OffFocusHandler"/>
<Button x:Name="Button2" Content="Convert" Click="OnClickHandler" Visibility="Collapsed"/>
</StackPanel>
我想执行以下操作:
- 当一个文本框具有焦点,另一个文本框必须隐藏并且相应的按钮必须显示
- 当文本框不在焦点时,我们回到原始显示:只有空的文本框可见
- 我不想让按钮能够触发OffFocusHandler
这是当前的代码,我有三个处理程序:
private void OnFocusHandler(object sender, RoutedEventArgs e)
{
TextBox SenderTextBox = (TextBox)sender;
if (SenderPanel.Name == "TextBox1")
{
Button1.Visibility = Visibility.Visible;
}
else if (SenderPanel.Name == "TextBox2")
{
Button2.Visibility = Visibility.Visible;
}
}
private void OffFocusHandler(object sender, RoutedEventArgs e)
{
TextBox1.Text = "";
TextBox2.Text = "";
Button1.Visibility = Visibility.Collapsed;
Button2.Visibility = Visibility.Collapsed;
}
private void OnClickHandler(object sender, RoutedEventArgs e)
{
// some stuff unrelated to my issue
}
如何避免点击按钮来触发代码是OffFocusHandler
? 有没有另外一种方法来编码?我是一个完整的初学者,所以我可能不会认为正确的方法。
由于sa_ddam213。 但是,BooleanToVisibilityConverter似乎不受Windows应用程序支持。我试图找到它的等价物。如果我找到了,我会在这里通知你们。 –
好的,即使在使用此(http://kentb.blogspot.com/2011/02/booleantovisibilityconverter.html)创建自己的BooleanToVisibilityConverter后,我无法使其工作。 我添加BooleanToVisibilityConverter这样: ' <共同:BooleanToVisibilityConverter X:键= “BoolTovisible”/> ' –