【问题标题】:Using GridSplitter in a Xaml file for both Silverlight and WPF在 Silverlight 和 WPF 的 Xaml 文件中使用 GridSplitter
【发布时间】:2010-05-23 19:07:13
【问题描述】:

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

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

【问题讨论】:

    标签: .net wpf silverlight xaml gridsplitter


    【解决方案1】:

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

    public class MyGridSplitter : GridSplitter { }
    

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

    xmlns:local="clr-namespace:mynamespace"
    

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

    <local:MyGridSplitter />
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 好的,但是如何在 wpf 和 Silverlight 之间为 xmnls:sdk 使用不同的值?我希望相同的 Xaml 代码在两者上都可以工作。
      • 除了那一行之外,它将是相同的 xaml 代码,我不知道不更改任何行。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多