代码之家  ›  专栏  ›  技术社区  ›  Daniel Plaisted

在用于Silverlight和WPF的XAML文件中使用GridSplitter

  •  1
  • Daniel Plaisted  · 技术社区  · 14 年前

    我有一个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 回复  |  直到 13 年前
        1
  •  2
  •   Daniel Plaisted    14 年前

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

    public class MyGridSplitter : GridSplitter { }
    

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

    xmlns:local="clr-namespace:mynamespace"
    

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

    <local:MyGridSplitter />
    
        2
  •  1
  •   Rick Rat    14 年前

    是的,在您的WPF中使用这个名称空间: xmlns:sdk=“http://schemas.microsoft.com/winfx/2006/xaml/presentation” 那么标签是一样的。您只需更改x:sdk标记就可以从wpf移到silverlight,然后再移回来。