在XAML文件中,我们通常使用默认设置
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
如何定义自定义xmlns而不是默认值。如
xmlns="http://www.mypage.com"
我并不是指添加新的xmlns,而是替换默认的xml。
答案 0 :(得分:1)
不清楚你的问题是什么......如果你想以某种方式使用默认命名空间而不是建议,只需在(通常)默认命名空间前加一个名称:
SELECT TO_CHAR( r_date, 'dd-mon-rr' ) AS r_date
FROM efg
在此示例中,我将项目本地名称空间<def:Window x:Class="WpfTests_2.MainWindow"
xmlns:def="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns="clr-namespace:WpfTests_2"
Title="MainWindow">
<def:Window.Resources>
<CustomBox x:Key="myLocalCustomBox"/>
</def:Window.Resources>
<def:Grid x:Name="grid1">
</def:Grid>
</def:Window>
设为默认名称,并将(正常)默认名称空间命名为WpfTests_2
。
对于典型的WPF应用程序,这是一个坏主意,因为您将使用许多控件,并且每次都需要为命名空间名称添加前缀。但它肯定是可能的。
如果您不使用def
命名空间中的任何内容(无http://schemas.microsoft.com/winfx/2006/xaml/presentation
,无Window
,无[无论何种控制]),您可以删除/替换它而无需重新定义它带有前缀。
答案 1 :(得分:-1)
我认为有可能,通过下面的第二部分文档:
For almost all of the examples given in the WPF sections of the SDK, the default XAML namespace is mapped to the WPF namespace http://schemas.microsoft.com/winfx/2006/xaml/presentation.
从almost all
开始,就是很少有例子没有使用这个网址,所以这是可能的。
WPF和XAML命名空间声明
在许多XAML文件的根标记中的名称空间声明中,您将看到通常有两个XML名称空间声明。第一个声明将整个WPF客户端/框架XAML命名空间映射为默认名称:
的xmlns = “http://schemas.microsoft.com/winfx/2006/xaml/presentation”
第二个声明映射一个单独的XAML命名空间,将其(通常)映射到x:前缀。
的xmlns:X = “http://schemas.microsoft.com/winfx/2006/xaml”
映射到自定义类和程序集
...
根元素还包含属性
xmlns
和xmlns:x
。这些属性向XAML处理器指示哪些XAML名称空间包含标记将作为元素引用的后备类型的类型定义。xmlns属性专门指示默认的XAML命名空间。 在默认的XAML命名空间中,可以指定标记中的对象元素,不带前缀。对于大多数WPF应用程序场景,以及对于SDK的WPF部分中给出的几乎所有示例,默认的XAML名称空间映射到WPF名称空间 http://schemas.microsoft.com/winfx/2006/xaml/presentation。
xmlns:x
属性表示另一个XAML命名空间,它映射XAML语言命名空间http://schemas.microsoft.com/winfx/2006/xaml。使用
xmlns
来定义名称范围的使用和映射范围与XML 1.0规范一致。 XAML名称范围与XML名称范围不同之处仅在于XAML名称范围还暗示了在类型解析和解析XAML时,名称范围的元素如何由类型支持。请注意,
xmlns
属性仅在每个XAML文件的根元素上是必需的。xmlns
定义将应用于根元素的所有后代元素(此行为再次与xmlns
的XML 1.0规范一致。)xmlns
属性也允许在根目录下的其他元素上,并将适用于定义元素的任何后代元素。但是,频繁定义或重新定义XAML名称空间会导致难以阅读的XAML标记样式。其XAML处理器的WPF实现包括一个了解WPF核心组件的基础结构。 已知WPF核心程序集包含支持WPF映射到默认XAML名称空间的类型。这是通过作为项目构建文件和WPF构建和项目系统一部分的配置启用的。 因此,将默认的XAML命名空间声明为默认的
xmlns
是引用来自WPF程序集的XAML元素所必需的。