【问题标题】:WPF Change Visibility during design-timeWPF 在设计时更改可见性
【发布时间】:2022-10-20 17:27:29
【问题描述】:

我的 CustomControls UI 元素 Visibility 通过 BoolToVisibilityConverter 绑定,请参见下面的代码:

<cc:CustomFFU LabelText="FFUZoneF_2-1"  HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="2" Grid.Column="1" Width="55" Height="35" 
        InstanceAddress="MCS1.Cleanroom.ProcessCell.UN_ZonesF.EM_FFU.CM_FFU2_1" 
        Visibility="{Binding VisibilityFFUView, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource BoolToVisibilityConverter}}" />

代码可以正常工作,但是在设计时visibilityCollapsed。所以我窗口上的每个 CustomControl 在开发过程中都是不可见的。很讨厌。。

design-time 期间的可见性如何固定为 Visibility? 附言。当我删除 BoolToVisibilityConverter 时,状态从 Collapsed 变为 Visible?也许,因为在设计时值代表假。只是一个猜测。

【问题讨论】:

标签: wpf visibility


【解决方案1】:

如果您使用的是 Visual Studio,则应添加d:Visibility="可见"您希望在设计时可见的 xaml 元素中的属性

像这样:

<Button Visibility="{Binding Property}" d:Visibility="Visible" />

并确保你有可忽略=“d”“http://schemas.openxmlformats.org/markup-compatibility/2006”根 xaml 元素上的命名空间 像这样:

<Window x:Class="WpfApp2.MainWindow"
                xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
                xmlns:local="clr-namespace:WpfApp2"
add this --->   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
and this --->   mc:Ignorable="d"
                Title="MainWindow" Height="450" Width="800">
    <Grid>
    </Grid>
</Window>

这在 Rider wpf 设计器中不起作用

【讨论】:

  • 感谢您的回答。添加 d:Visibility 时出现以下错误。 “schemas.microsoft.com/expression/blend/2008”命名空间中不存在“可见性”属性。
  • 再次感谢。我已经集成了两者,但仍然收到相同的错误消息。我正在使用 Visual Studio 2019。
  • d:IsHidden="False" 正在工作。但是,对象当然仍然是折叠的。 d:Visibility="Visible" 在 Blend 中似乎不存在?你有工作样本吗?
  • @AfronSall 是的,这里是 github.com/U7nk/d-Visibility-example/tree/main 使用 Visual Studio 2019 社区 16.11.14 测试
  • @AfronSall 看起来像 d:Visibility 在网络框架中不受支持,但您可以使用另一种方法。这是网络框架 4.6.1 的示例(在 Visual Studio 2022 上运行不佳,vs 19 还可以)github.com/U7nk/d-Visibility-example/tree/main/… 我稍后会添加它来回答
【解决方案2】:

我找到了解决“为什么vs2019不能直接使用d:Visibility”的方法。 这是微软的回答:https://learn.microsoft.com/en-us/visualstudio/xaml-tools/xaml-designtime-data?view=vs-2019#troubleshooting

  1. 设计时数据需要 Visual Studio 2019 版本 16.7 或更高版本。
  2. 支持面向 .NET Core 和 UWP 的 Windows Presentation Foundation (WPF) 的 Windows 桌面项目。此功能也可用于预览频道中的 .NET Framework。要启用它,请转到工具 > 选项 > 环境 > 预览功能,选择适用于 .NET Framework 的新 WPF XAML 设计器,然后重新启动 Visual Studio。

    当我为 .Net Framework 选择新的 WPF XAML 设计器时,我可以使用 d:Visibility 并且我没有再次看到错误!

【讨论】:

    猜你喜欢
    • 2011-08-10
    • 2021-08-15
    • 1970-01-01
    • 2011-05-28
    • 2012-05-11
    • 2019-12-23
    • 2017-04-17
    • 2014-03-01
    • 2014-04-07
    相关资源
    最近更新 更多