Looks like the following Ellipse in ControlTemplate does not get the BorderThickness, but why?
<Window.Resources>
<ControlTemplate x:Key="EllipseControlTemplate" TargetType="{x:Type TextBox}">
<Grid>
<Ellipse
Width="{TemplateBinding ActualWidth}"
Height="{TemplateBinding ActualHeight}"
Stroke="{TemplateBinding Foreground}"
StrokeThickness="{TemplateBinding BorderThickness}" />
<ScrollViewer Margin="0" x:Name="PART_ContentHost" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Window.Resources>
<Grid>
<TextBox
Template="{DynamicResource EllipseControlTemplate}"
Foreground="Green"
BorderThickness="15" />
</Grid>
TemplateBinding to Foreground
works just fine, the ellipse is green. But to StrokeThickness
it doesn't seem to work, why?
BorderThickness
is not that easy, it is a struct of typeThickness
(and can be composite, likeBorderThickness=".0,.0,2,2"
), whileStrokeThickness
property is of typedouble
.You need
IValueConverter
to make this binding work.