【问题标题】:How To: Stop Visual Studio XAML Editor from Adding mc:Ignorable如何:阻止 Visual Studio XAML 编辑器添加 mc:Ignorable
【发布时间】:2012-09-05 03:48:32
【问题描述】:

每当我在 XAML 页面打开时运行我的 Windows Phone 应用程序时,Visual Studio 都会将以下内容添加到我的 XAML:

mc:Ignorable="d" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"   
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
d:DesignHeight="768" 
d:DesignWidth="480"

我怎样才能阻止它这样做?我知道保留它不会伤害我,但除非我需要它,否则我不希望它出现在我的代码中。

谢谢

【问题讨论】:

    标签: visual-studio-2010 xaml-designer


    【解决方案1】:

    在创建任何类型的预定义文档时,Visual Studio 使用内置的默认模板。

    例如,对于 WPF UserControl 的 Visual Studio 2010 自定义模板的外观:

    <UserControl x:Class="$rootnamespace$.$safeitemname$"
                 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="http://schemas.microsoft.com/expression/blend/2008"
                 mc:Ignorable="d"
                 d:DesignHeight="300" d:DesignWidth="300">
        <Grid>
    
        </Grid>
    </UserControl>
    

    我电脑上的文件位置:C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplatesCache\CSharp\WPF\1033\WPFUserControl.zip\UserControl1.xaml

    如您所见,Microsoft Team 决定默认包含此命名空间。我相信您也可以找到这样的 Windows Phone 项目模板,只需在 Visual Studio 安装文件夹下查看,显然您始终可以为任何类型的文档创建和使用自己的模板。

    而且我发现最简洁的 - 您无需重新启动 Visual Studio 即可获取您所做的模板更新。我刚刚从默认模板中删除了mc:Ignorable,并尝试创建一个新的 UserControl - 它是使用刚刚更新的模板文件创建的,因此 Visual Studio 2010 可以即时获取更改,这很好,归功于 Microsoft 团队。


    看起来所有可用模板都按技术/框架分组在此文件夹下:

    "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplatesCache\CSharp\"

    【讨论】:

    • 我不是在谈论在创建新文件时在我的 XAML 中包含 mc:Ignorable 和朋友。如果您返回并再次阅读该问题,我提到每次我在页面打开(并处于活动状态)时运行应用程序时,这些都会插入到我的 XAML 中。
    • 好的,当您停止应用程序时,tis 标记仍在 XAML 中还是被自动删除?我可以想象为什么 Vsual Studio 添加这个标签,无论是问题还是需要在编译/解析 XAML 时保证某些状态/逻辑,但如果 VS 不删除这些东西 - 这肯定是一个错误
    • 不,它没有被删除。那些添加的东西可能对设计视图很重要,但我几乎不使用它......无论如何拥有它对我来说没有意义......但无论如何,似乎没有办法解决它:)跨度>
    【解决方案2】:

    我找不到阻止 Visual Studio XAML 编辑器将 mc:Ignorable 添加到给定 XAML 页面的配置选项或注册表。

    阻止 Visual Studio 添加它的可能方法包括:

    • 在运行应用程序之前手动关闭 XAML 页面
    • 通过扩展 Visual Studio(资源 here)或使用宏(宏已从 Visual Studio 11 及更高版本中删除)在运行应用程序之前自动关闭 XAML 页面
    • 将用于编辑 XAML 的编辑器设置为仅使用 XAML 编辑器内的常规文本编辑器。 (资源herehere
    • 通过让您的应用程序或构建后步骤编辑 XAML 文件来删除添加的 XAML。 部分代码 sn-p 是here。如果采用应用程序方法,则需要编辑文件,然后重新加载相关控件。关于后期构建事件的信息可在 How to: Specify Build Events (C#)Gotcha! Visual Studio Pre/Post-Build Events 获得,以便使用批处理文件。

    您是否需要它取决于您的用例是否需要为 Visual Studio 的设计器指定的设计时宽度和高度,这是您的决定。 有关更多信息,请参阅 mc:Ignorable Attribute 了解属性本身,以及以下 Stackoverflow post 了解有关 d:DesignWidthd:DesignHeight 的更多信息。

    【讨论】:

    • 这些有很多技巧和解决方法。虽然我讨厌 Visual Studio 将该标记添加到我的 XAML 中,但我不认为值得经历所有这些麻烦 :) 无论如何谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    相关资源
    最近更新 更多