WPF XAML全球参考

时间:2008-11-20 20:59:10

标签: c# wpf xaml

有没有办法重用第三方控件参考?

例如,我在App.xaml

中引用了这个
xmlns:cust="clr-namespace:ThirdParty.Controls;assembly=ThirdParty.Controls"

我不想在需要来自库的控件的每个页面/控件上重复此第三方控件xml命名空间。

是否有集中这些引用并使用此处定义的前缀?每个控件具有不同前缀的可能性也令人担忧。在asp.net中你会在web.config中添加一个引用,并且它在全局可用,我只是想看看WPF中是否有类似的方法。

2 个答案:

答案 0 :(得分:2)

我在想两个选项

1)将该控件包装到UserControl中,然后在所有位置使用UserControl。

2)在某处将第三方控件声明为Resource,然后在其他地方使用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>

您可以看到名称空间声明将始终位于此资源文件中,您可以从任何地方使用该控件

答案 1 :(得分:0)

从Label的内置控件模板中获取示例:

<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">

Show Me The Template对于这些事情来说是一个非常有用的资源。 HTH