c# - WPF XAML - 文本框的设计时间和可见性

标签 c# wpf xaml datatrigger

我将 Visual Studio 2019 与 WPF/MVVM 结合使用。

我已经为文本框设置了一个触发器来控制它的可见性。 在运行时这很有效,触发器检查单选按钮的状态并根据单选按钮的状态设置文本框的可见性。

但是在设计时这个文本框是不可见的。 我怎样才能使这个文本框在设计时可见?

这是我为触发器准备的 XAML:

<Style x:Key="text" TargetType="TextBox">

    <Style.Triggers>

       <DataTrigger Binding="{Binding ElementName=Radiobutton1, Path=IsChecked}" Value="true">
            <Setter Property="Visibility" Value="Visible"/>
        </DataTrigger>

        <DataTrigger Binding="{Binding ElementName=Radiobutton1, Path=IsChecked}" Value="false">
            <Setter Property="Visibility" Value="Collapsed"/>
        </DataTrigger>

    </Style.Triggers>
</Style>


<TextBox Style="{StaticResource text}"  Text="test..... />

我找到了这篇文章 https://social.msdn.microsoft.com/Forums/en-US/cacc5c30-8aa0-43c5-ad07-b063028653a2/designmode-and-visibility?forum=wpf并使用“DesignerProperties.IsInDesignMode”进行了一些测试,但我无法运行,出现“无法将数据触发器添加到 setterbasecollection”之类的错误。

我也不知道“DesignerProperties.IsInDesignMode”是否是正确的方法...

最佳答案

我认为答案更简单。通过添加 d:Visibility="Visible",文本框将在设计时可见。

<TextBox d:Visibility="Visible" Style="{StaticResource text}"  Text="test..... />

关于c# - WPF XAML - 文本框的设计时间和可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57535833/

相关文章:

c# - 在 DataTemplate 中显示数据绑定(bind)的 StackPanel

c# - 存储库层是否应该返回数据传输对象 (DTO)?

c# 如何在 c# 中显示名称并从组合框中插入值(名称的 ID)

c# - 通过代码将文本框的高度绑定(bind)到父级

c# - 在 ListBox 中使用自定义 ListBoxItem 定义进行性能分析

c# - WPF:如何实现通用窗口?

c# - 使用键盘搜索 WPF 列表框项目

c# - 如何使用C#从字符串中获取特定字符位置

.net - 调试 CommandBinding 的 CanExecute

c# - 无法从 DataGrid 问题中转换 .SelectedItems