1

我有一个 Xaml 文件,该文件用于可以为 Silverlight 和 WPF 构建的项目中。我想使用 GridSplitter 控件。但是,此控件位于 Silverlight 和桌面 WPF 上的不同 Xaml 命名空间中。

在 WPF 中,命名空间是:http://schemas.microsoft.com/winfx/2006/xaml/presentation 在 Silverlight 上,它是:http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk

因此,如果 xaml 代码为<GridSplitter/>,它将在 WPF 上运行,但不适用于 Silverlight,如果代码为<sdk:GridSplitter/>,它将在 Silverlight 上运行,但不适用于 WPF。

有没有办法编写它以使其在两个平台上都可以使用?

4

2 回答 2

2

我最终做的是创建自己的从 GridSplitter 派生的类。

public class MyGridSplitter : GridSplitter { }

然后我将我的项目的 xmlns 放在我的 xaml 文件的顶部:

xmlns:local="clr-namespace:mynamespace"

然后我可以为我的 GridSplitter 使用本地命名空间前缀:

<local:MyGridSplitter />
于 2010-05-25T05:24:23.477 回答
1

是的,在你的 wpf 中使用这个命名空间: xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 那么标签是一样的。您只需更改 x:sdk 标签即可从 wpf 移动到 silverlight 并返回。

于 2010-05-23T20:46:01.620 回答