我有一个uwp应用程序,我的应用程序中有一个ToogleSwitch,我希望在ToogleSwitch更改状态时显示一个TexBox。 我知道如何显示文本框,我的问题是如何知道Toogle Switch何时更改状态(由用户)。
答案 0 :(得分:1)
假设您正在使用周年纪念更新或更高版本,您可以执行此操作:
<ToggleSwitch x:Name="MySwitch" />
<TextBlock Text="Hello world" Visibility="{x:Bind MySwitch.IsOn, Mode=OnwWay}" />
好吧,好吧?
从Windows 10版本1607开始,XAML框架提供了内置的布尔值到可见性转换器。转换器将true映射到Visible枚举值,将false映射到Collapsed,这样您就可以将Visibility属性绑定到布尔值而无需创建转换器。请注意,这不是函数绑定的功能,只是属性绑定。要使用内置转换器,您应用的最低目标SDK版本必须为14393或更高版本。当您的应用面向早期版本的Windows 10时,您无法使用它。有关目标版本的详细信息,请参阅版本自适应代码。 https://docs.microsoft.com/en-us/windows/uwp/xaml-platform/x-bind-markup-extension
祝你好运!
答案 1 :(得分:0)
XAML:
<TextBlock Name="MyText" Text="Lorem Ipsum..." />
<ToggleSwitch Name="MyToggle" Toggled="MyToggle_Toggled"/>
C#背后的代码:
private void MyToggle_Toggled(object sender, RoutedEventArgs e)
{
if (sender is ToggleSwitch)
{
var toggle = (ToggleSwitch)sender;
if (toggle.IsOn)
{
MyText.Visibility = Visibility.Visible;
}
else
{
MyText.Visibility = Visibility.Collapsed;
}
}
}
请注意,在创建制作软件时,您通常会使用数据绑定,但听起来您只是在学习,所以我相信这是您正在寻找的答案。