我想要三个文本框(只显示其中一个输入文本)按钮选择要输入文本的文本框 我将textbox 0.0的opacity属性设置为隐藏设置不透明度为1.0以显示。
在xaml页面中:
<StackPanel Grid.Row="0" Orientation="Horizontal">
<Button x:Name="btnGood" HorizontalAlignment="Center"
Content="Good"
Click="Toggle_Click">
</Button>
<Button x:Name="btnBad" HorizontalAlignment="Center"
Content="Bad"
Click="Toggle_Click">
</Button>
<Button x:Name="btnDetail" HorizontalAlignment="Center"
Content="Detail"
Click="Toggle_Click">
</Button>
</StackPanel>
<Grid Grid.Row="1">
<TextBox x:Name="txtDetail" AcceptsReturn="True"
TextWrapping="Wrap" />
<TextBox x:Name="txtBad" AcceptsReturn="True"
TextWrapping="Wrap" Opacity="0.0"/>
<TextBox x:Name="txtGood" AcceptsReturn="True"
TextWrapping="Wrap" Opacity="0.0"/>
</Grid>
在代码中:
private void Toggle_Click(object sender, RoutedEventArgs e)
{
Button btnSender = (Button)sender;
string id = btnSender.Content.ToString();
switch (id)
{
case "Good":
{
txtDetail.Opacity = 0.0;
txtBad.Opacity = 0.0;
txtGood.Opacity = 1.0;
}
break;
case "Bad":
{
txtDetail.Opacity = 0.0;
txtGood.Opacity = 0.0;
txtBad.Opacity = 1.0;
}
break;
case "Detail":
{
txtBad.Opacity = 0.0;
txtGood.Opacity = 0.0;
txtDetail.Opacity = 1.0;
}
break;
default:
break;
}
}
问题是: 点击好的按钮后会显示txtGood文本框,可以看到键入的字符。 但是当点击坏或详细按钮时,文本被输入到txtGood中,并且没有显示仅显示的暗色空文本框。但它应该输入到相应的文本框中,并且应该对用户可见。怎么解决这个问题?
答案 0 :(得分:3)
为什么不使用txtBad.Visibility = Visibility.Collapsed
?这是隐藏屏幕上某些内容的更好方法。
答案 1 :(得分:2)
可见性有什么问题?你为什么使用Opacity?