<Grid>
<Grid HorizontalAlignment="Center" VerticalAlignment="Center" x:Name="g">
<Canvas>
<Rectangle RadiusX="5" RadiusY="5"
Width="{Binding ElementName=g, Path=ActualWidth}"
Height="{Binding ElementName=g, Path=ActualHeight}"
Stroke="Blue" StrokeDashArray="5,2,1,2" StrokeThickness="2"/>
</Canvas>
<TextBlock Margin="10,7,10,7" Text="aaa" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</Grid>
效果图:
公共样式:
<Style TargetType="ContentControl" x:Key="myBorder">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid x:Name="g"
Background="{TemplateBinding ContentControl.Background}"
Width="{TemplateBinding ContentControl.Width}"
Height="{TemplateBinding ContentControl.Height}">
<Canvas>
<Rectangle RadiusX="5" RadiusY="5"
Width="{Binding ElementName=g, Path=ActualWidth}"
Height="{Binding ElementName=g, Path=ActualHeight}"
Stroke="{TemplateBinding ContentControl.BorderBrush}"
StrokeDashArray="5,2,1,2"
StrokeThickness="{TemplateBinding ContentControl.BorderThickness}"/>
</Canvas>
<ContentPresenter Margin="5" Content="{TemplateBinding ContentControl.Content}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
使用示例:
<ContentControl Margin="10" HorizontalAlignment="Center" VerticalAlignment="Center"
BorderThickness="2" BorderBrush="Blue" Style="{StaticResource myBorder}">
<TextBlock Text="abc"/>
</ContentControl>