有没有办法重用第三方控件参考?
例如,我在App.xaml
中引用了这个xmlns:cust="clr-namespace:ThirdParty.Controls;assembly=ThirdParty.Controls"
我不想在需要来自库的控件的每个页面/控件上重复此第三方控件xml命名空间。
是否有集中这些引用并使用此处定义的前缀?每个控件具有不同前缀的可能性也令人担忧。在asp.net中你会在web.config中添加一个引用,并且它在全局可用,我只是想看看WPF中是否有类似的方法。
答案 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