我有我的自定义控件,看起来像这样
<UserControl BorderBrush="#A9C2DE" HorizontalAlignment="Left" x:Class="Block"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="86" Width="151" ToolTip="{DynamicResource BasicTooltip}">
<UserControl.Resources>
<ResourceDictionary Source="TextBoxStyles.xaml"/>
</UserControl.Resources>
<DockPanel LastChildFill="True" Style="{StaticResource PanelStyle}">
<Label DockPanel.Dock="Top" Content="{Binding Path=_Code}" HorizontalAlignment="Stretch" Name="label1" Height="25" VerticalAlignment="Top" Style="{StaticResource LabelStyle}" ></Label>
<TextBox Name="txtBox" Style="{StaticResource DefaultStyle}" >
<TextBox.Text>
<Binding Path="_Name">
</Binding>
</TextBox.Text>
</TextBox>
</DockPanel>
所以你可以看到这个控件由一个 DockPanel 组成,我在其中放置了标签和文本框。在代码中,我向上面提到的标签和文本框的操作添加了一些事件。该控件具有矩形的基本形状。但是今天我发现这个控件最好是菱形或者比普通矩形更复杂的形状。是否可以为我的控件赋予不同的形状,保持所有功能(我在代码文件中编写的所有事件)并保持内容(文本框和标签)不变?
我尝试了这段代码
<Style TargetType="{x:Type UserControl}" x:Key="BlockStyle" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Ellipse
x:Name="Border"
Stroke="#FF393785"
StrokeThickness="2"
Fill="Transparent"
>
</Ellipse>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
但是,当我在控件中使用此样式时,所有元素(文本框和标签等)都被此样式覆盖。