wpf 仅在设计时使用本地命名空间中的组件,如〈d:local:UserControl

q7solyqu  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(144)

我知道合并名称空间看起来很荒谬。我想做这样的事情:〈d:local:UserControl ...但是如何使自定义UserControl只在设计视图中可见?通过使用:d前缀,我可以使组件只存在于设计视图中,但是我的自定义组件已经从其他命名空间中读取。如何以某种方式合并到它们中?

xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:local="clr-namespace:ChessBoardAnalizer.Components"
xmlns:dlocal="d:local"

这显然行不通。
我尝试过声明新的xaml命名空间并给它的值添加两个链接。这是不可能的。我尝试过使用其他方法来改变组件的可见性,但所有这些方法都涉及使用代码隐藏文件,对于这样一个设计流程问题来说,这似乎很混乱。显而易见的解决方案似乎是:

<d:ViewBox>
    <local:UserControl/>
<d:ViewBox/>

但这是关于干净的代码。

r7knjye2

r7knjye21#

不好看

<ContentControl>
     <d:DesignerProperties.DesignStyle>
        <Style TargetType="ContentControl">
            <Setter Property="Content">
                <Setter.Value>
                    <local:UserControl/>
                </Setter.Value>
            </Setter>
        </Style>
    </d:DesignerProperties.DesignStyle>
</ContentControl>

相关问题