這取決於你想拿,你是否想使一個資源文件有一些模板等,其複製/鏈接到每個應用程序seperately,或使用包含在一個共同的DLL的東西的路線上。
如果你想做後者,這裏有一種方法。子類ContentControl
在其控制模板來定義您共同佈局(你可以做到這一切的XAML),包括在適當的地方結合到其內容:
<ContentControl x:Class="MyLibrary.MyLayoutControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ContentControl.Template>
<ControlTemplate TargetType="ContentControl">
<!-- this could be a layout grid with various other controls in it -->
<Border BorderBrush="Red" BorderThickness="2" CornerRadius="5">
<ContentPresenter Content="{TemplateBinding Content}" />
</Border>
</ControlTemplate>
</ContentControl.Template>
</ContentControl>
然後在你的應用程序根控制使用它:
<UserControl x:Class="InCustomControlTest.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:MyLibrary;assembly=MyLibrary">
<c:MyLayoutControl>
<Button Content="Hi I am a button" />
</c:MyLayoutControl>
</UserControl>
如果你想做更復雜的事情,你應該做一個自定義控件;儘管在大多數情況下,您可能會爲了各種組件(例如您的狀態欄)而放棄使用一些UserControl來放置在正確的位置。
你幾乎救了我的命。 ; o) 確實,我想要的是一個普通的DLL中的東西,你的解決方案似乎可以做到這一點。 非常感謝! – Rodolphe