我正在通过XamlWriter.Save(object)
. 这按预期工作。
现在的问题是,XamlWriter
根据需要设置命名空间,例如根命名空间xmlns
设置为 my 的命名空间object
。
问题是,我想将 xaml 复制到现有的 xaml 中,其中已经定义了命名空间。它可以工作,因为它XamlWriter
还将命名空间属性添加到生成的字符串中,但我希望我已经存在的前缀将被重用。这可能吗?
示例 XAML:
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:assembly="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:shared="urn:mlog-sharedclasses-ns"
xmlns:visu="urn:mlog-visucommon-ns"
Width="2000"
Height="1000"
Background="White"
TextBlock.FontFamily="{StaticResource OpenSans}"
assembly:Name="rootElement"
mc:Ignorable="d">
<Grid.Resources>
<BoolToBrushConverter xmlns="clr-namespace:ControlPanel.SharedClasses.Converters;assembly=MCC.ControlPanel.SharedClasses"
FalseValue="#FF00FFFF"
TrueValue="#FF0000FF"
assembly:Key="ID_880cf_BorderBrush_Converter" />
</Grid.Resources>
<visu:TagRootCanvas>
<Button Content="Button"
Width="412"
Height="231"
Canvas.Left="33"
Canvas.Top="71"
assembly:Name="ID_880cf">
<i:Interaction.Behaviors>
<visu:TagBindingBehavior xmlns:av="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns="urn:mlog-visucommon-ns"
Converter="{av:StaticResource ID_880cf_BorderBrush_Converter}"
Debug="False"
Mode="OneWay"
Property="{shared:Static Member=av:Border.BorderBrushProperty}"
TagDataType="Bool"
TagName="aaa"
UpdateSourceTrigger="Default"
UseConvertedNullAsFallback="False" />
</i:Interaction.Behaviors>
</Button>
</visu:TagRootCanvas>
</Grid>
我稍后通过 XamlWriter.Save 创建 TagBindingBehavior 并将其添加到我的文档中。但它有不同的命名空间。我想从 TagBindingBehavior 中删除“xmlns”属性。