您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

XAML是否具有调试模式的条件编译器指令?

XAML是否具有调试模式的条件编译器指令?

我最近不得不这样做,当我无法轻松找到任何清晰的示例时,它是如此的简单,这让我感到惊讶。我所做的是将以下内容添加到AssemblyInfo.cs中:

#if DEBUG
[assembly: XmlnsDeFinition( "debug-mode", "Namespace" )]
#endif

然后,使用标记兼容兼容性名称间的AlternateContent标记根据该名称空间定义的存在来选择内容

<Window x:Class="Namespace.Class"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:d="debug-mode"

        Width="400" Height="400">

        ...

        <mc:AlternateContent>
            <mc:Choice Requires="d">
                <Style TargetType="{x:Type ToolTip}">
                    <Setter Property="FontFamily" Value="Arial"/>
                    <Setter Property="FlowDirection" Value="LeftToRight"/>
                </Style>
            </mc:Choice>
            <mc:Fallback>
                <Style TargetType="{x:Type ToolTip}">
                    <Setter Property="FontFamily" Value="Tahoma"/>
                    <Setter Property="FlowDirection" Value="RightToLeft"/>
                </Style>
            </mc:Fallback>
        </mc:AlternateContent>

        ...
</Window>

现在,当定义DEBUG时,还将定义“调试模式”,并且将出现“ d”命名空间。这使AlternateContent标记选择了第一段代码。如果未定义DEBUG,则将使用Fallback代码块。

此示例代码未经测试,但与我在当前项目中有条件地显示一些调试按钮所用的基本上相同。

我确实看到了一篇博客文章,其中包含一些示例代码,这些代码依赖于“ Ignorable”标签,但这种方法看起来不太清晰且易于使用。

其他 2022/1/1 18:16:02 有513人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶