在Xaml文件中为Silverlight和WPF使用GridSplitter

时间:2010-05-23 19:07:13

标签: .net wpf silverlight xaml gridsplitter

我有一个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。

有没有办法写这个,以便它可以在两个平台上运行?

2 个答案:

答案 0 :(得分:2)

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

public class MyGridSplitter : GridSplitter { }

然后我在xaml文件的顶部为我的项目添加了一个xmlns:

xmlns:local="clr-namespace:mynamespace"

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

<local:MyGridSplitter />

答案 1 :(得分:1)

是的,在你的wpf中使用这个命名空间: 的的xmlns:SDK = “http://schemas.microsoft.com/winfx/2006/xaml/presentation” 然后标签是相同的。你只需要改变x:sdk标签就可以从wpf转移到silverlight并返回。