2008-11-20 86 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