2010-05-23 2 views
1

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

Что я в итоге сделал, так это создать свой собственный класс, полученный из GridSplitter.

public class MyGridSplitter : GridSplitter { } 

Тогда я ставлю Xmlns для моего проекта в верхней части моего XAML файла:

xmlns:local="clr-namespace:mynamespace" 

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

<local:MyGridSplitter /> 
+0

болезненный - но он работает ... – chadbr

1

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

+0

Хорошо, но как использовать другое значение для xmnls: sdk между wpf и Silverlight? Я хочу, чтобы один и тот же код Xaml работал на обоих. –

+0

это был бы один и тот же код xaml, за исключением одной строки, но я не знаю, как изменить строки. –

Смежные вопросы