Использование GridSplitter в файле Xaml для Silverlight и WPF - PullRequest
1 голос
/ 23 мая 2010

У меня есть файл Xaml, который используется в проекте, который может быть собран как для Silverlight, так и для WPF. Я хочу использовать элемент управления GridSplitter. Однако этот элемент управления находится в разных пространствах имен Xaml в Silverlight и настольном WPF.

В 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 ]

2 голосов
/ 25 мая 2010

В итоге я создал свой собственный класс, производный от GridSplitter.

public class MyGridSplitter : GridSplitter { }

Затем я поместил xmlns для своего проекта в начало моего файла xaml:

xmlns:local="clr-namespace:mynamespace"

И тогда я мог бы просто использовать префикс локального пространства имен для моего GridSplitter:

<local:MyGridSplitter />
1 голос
/ 24 мая 2010

Да, в вашем wpf используйте это пространство имен: xmlns: sdk = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" Тогда тег будет таким же. Вам просто нужно изменить тег x: sdk, чтобы перейти от wpf к silverlight и обратно.

...