WPF XAML Global Reference - PullRequest
       15

WPF XAML Global Reference

3 голосов
/ 20 ноября 2008

Можно ли повторно использовать сторонние контрольные ссылки?

Например, я ссылаюсь на это в моем App.xaml

xmlns:cust="clr-namespace:ThirdParty.Controls;assembly=ThirdParty.Controls"

Я не хочу повторять это пространство имен XML-элемента управления третьей стороны на каждой странице / элементе управления, для которого требуется элемент управления из библиотеки.

Есть ли способ централизовать эти ссылки и использовать префикс, определенный здесь? Возможность для каждого элемента управления иметь разные префиксы также вызывает беспокойство. В asp.net вы бы поместили ссылку в web.config, и она была доступна глобально, я просто смотрю, есть ли подобный метод в WPF.

Ответы [ 2 ]

2 голосов
/ 21 ноября 2008

Два варианта, я думаю

1) Оберните этот элемент управления в UserControl, а затем используйте свой UserControl во всех местах.

2) Объявите сторонний элемент управления как ресурс где-нибудь, а затем используйте ссылку DynamicResource на ссылку в других местах.

Второй вариант может быть реализован как показано ниже.

Где бы вы ни хотели, чтобы сторонний элемент управления поместил ContentControl, как показано ниже

<ContentControl Template="{DynamicResource thirdPartyControlTemplate}" />

Шаблон ControlTemplate будет находиться в файле ресурсов или в App.Xaml, как показано ниже.

  xmlns:thridParty="clr-namespace:WpfCustomControlLibrary1;assembly=WpfCustomControlLibrary1"                >
<Application.Resources>
    <ControlTemplate x:Key="thirdPartyControlTemplate" TargetType="{x:Type ContentControl}">
        <thridParty:ThirdPartyControl />
    </ControlTemplate>
</Application.Resources>

Вы можете видеть, что объявление пространства имен всегда будет в этом файле ресурсов, и вы сможете использовать этот элемент управления из любого места

0 голосов
/ 21 ноября 2008

Возьмем пример из встроенного шаблона управления для метки:

<ControlTemplate TargetType="Label" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:s="clr-namespace:System;assembly=mscorlib" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

Покажите мне шаблон - удивительно полезный ресурс для подобных вещей. НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...