我正在构建一个扩展 SDK 以在 Visual Studio 工具箱中安装 Windows 10 UWP 自定义控件。
扩展SDK安装成功,自定义控件出现在工具箱中。
当我将自定义控件从工具箱拖到 XAML 页面上时,会添加该控件,并且 XAML 页面中会显示以下条目:
- 属性xmlns:View="using:Xfinium.Pdf.View"
在页面标签上和
- <View:PdfCoreView ... />
控件的标记。
我的问题是如何自定义控件,以便 Visual Studio 设计器为控件生成不同的命名空间,例如“xfs”( xmlns:xfs="using:Xfinium.Pdf.View"
) 而不是“View”?
最佳答案
My question is how do I customize my control so that the Visual Studio designer generates a different namespace for the control
您可以使用 xmlns
作为前缀手动定义该值。您可以手动将 xmlns:xfs="using:Xfinium.Pdf.View
添加到 Page
的声明中,以将 xfs
映射到自定义using:Xfinium.Pdf.View
命名空间。然后,当您从工具箱中拖动自定义控件时,它将具有您想要的 xfs
前缀。
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
...
x:Class="Cleantest.MainPage"
mc:Ignorable="d"
xmlns:xfs="using:Microsoft.Toolkit.Uwp.UI.Controls"
>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<xfs:Carousel HorizontalAlignment="Left" Margin="161,254,0,0" VerticalAlignment="Top"/>
<xfs:ImageEx HorizontalAlignment="Left" Margin="161,354,0,0" VerticalAlignment="Top"/>
<!--<Controls:Carousel HorizontalAlignment="Left" Margin="161,254,0,0" VerticalAlignment="Top"/>-->
</Grid>
</Page>
如果您没有设置引用命名空间的自定义值,则直接从工具箱中拖动自定义控件,前缀将根据命名空间名称自动生成。例如,Xfinium.Pdf.View
应为 View:
,Microsoft.Toolkit.Uwp.UI.Controls
应为 Controls:
。因此,如果您想更改此值,您应该更改原始包的命名空间名称。
建议在页面声明中自行定义该值。如果没有此 XAML,将不会有与命名空间不同的前缀,而是命名空间自己的名称。
关于UWP 控件的 XAML 命名空间标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46561581/