在我们的应用程序中,所有视图都有一个“基本”布局。为了重用通用代码,我为它创建了一个 BaseControl 类和一个模板。
我想要实现的是从“BaseControl”派生的每个控件的通用标题和页脚栏
XAML 中的具体视图:
<my:BaseControl x:Class="SampleView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
xmlns:my="clr-namespace:UserInterface" d:DesignWidth="924">
<Grid>
//This elements are not visible - why?
</Grid>
公共基类(没有 XAML,但有模板)
public class BaseControl : System.Windows.Controls.UserControl{}
模板:
<Style TargetType="{x:Type my:BaseControl}" BasedOn="{StaticResource {x:Type UserControl}}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
....snip
<Border Grid.Row="0" Name="SomeCommonUsedBorder">
<ContentPresenter>
//every thing placed between
//<SampleView> and </SampleView> should go here
</ContentPresenter>
....snip
//some other commonly used elements goes here
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
示例视图看起来像预期的那样,但是我在派生控件中编写的所有内容都是不可见的。
感谢您的任何提示和想法
曼努埃尔