WPF在设计时更改可见性

kzipqqlq  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(180)

我的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的?Ps.当我删除BoolToVisibilityConverter时,状态从Collapsed变为Visible?可能,因为在设计值时表示false。只是猜测。

rsaldnfx

rsaldnfx1#

如果您使用的是Visual Studio,则应在希望在设计时可见的xaml元素中添加**d:Visibility=“Visible”**属性
就像这样:

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

并确保在根xaml元素上有**Ignorable=“d”from”http://schemas.openxmlformats.org/markup-compatibility/2006“**名称空间,如下所示:

<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设计器中无效

wyyhbhjk

wyyhbhjk2#

我找到了解决“为什么vs 2019不能直接使用d:Visibility”的方法.这是微软的答案:https://learn.microsoft.com/en-us/visualstudio/xaml-tools/xaml-designtime-data?view=vs-2019#troubleshooting
1.设计时数据需要Visual Studio 2019 16.7版或更高版本。
1.支持面向Windows Presentation Foundation(WPF)for .NET Core与UWP得Windows桌面项目.此功能也可用于预览频道中得.NET Framework.若要启用此功能,请转到Tools > Options > Environment > Preview Features,选择“新建.NET Framework得WPF XAML设计器,”然后重新启动Visual Studio.
当我为.Net Framework选择“新建WPF XAML设计器”时,我可以使用d:Visibilty,并且我没有再看到错误!

相关问题