2008-11-20 103 views
3

有没有办法重用第三方控件引用?WPF XAML Global Reference

例如,我有这个在我的App.xaml

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

引用我不想重复每一页/控制需要从库控制这个第三方控制的XML命名空间。

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

回答

1

两个选项我想

1)换行控制到一个用户控件,然后用你的用户控件中的所有地方。

2)将第三方控件声明为某个资源,然后在其他地方使用DynamicResource引用。

第二个选项可以作为波纹管实现。

你在哪里都希望第三方控制放像ContentControl中波纹管

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

的控件模板将在资源文件中或在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

谢谢,这是最接近我可以得到一个全球包括。尽管我可能会忽略每个窗口中的包含并处理它。 – Jab 2008-11-21 16:43:00

0

从内置控件模板的拿一个例子标签:

<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

+0

我不知道这将如何帮助。我不想更改第三方控件的模板,我想引用来自中央xmlns导入的相同控件。如果这以某种方式购买我,请详细解释。 – Jab 2008-11-20 23:09:38