在我的项目中,我自定义Slider控件。请帮我。
<Thumb x:Name="HorizontalThumb" Grid.Column="1" Margin="-1,-10,0,0" RenderTransformOrigin="0.5,0.5" Width="1" >
<!--<Thumb.RenderTransform>
<ScaleTransform ScaleY="1" ScaleX="30"/>
</Thumb.RenderTransform>-->
<Thumb.Template>
<ControlTemplate>
<Grid>
<Image Height="60" Width="110" IsHitTestVisible="True" Margin="-110,-10" Stretch="Fill" Source="/DiaDiemJSC;component/bluebutton.png" />
<TextBlock FontFamily="Tahoma" x:Name="TextContent" Text="{TemplateBinding ContentSlider}" Margin="-110,-10" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</ControlTemplate>
</Thumb.Template>
</Thumb>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我想将TemplateBinding转换为TextBlock x:Name =“TextContent”。我尝试过没法成功。
答案 0 :(得分:0)
如果您通过Binding设置ContentSlider属性,则TemplateBinding将无效。
但是TemplateBinding是
的缩写{Binding Path=ContentSlider, RelativeSource={RelativeSource TemplatedParent}}
答案 1 :(得分:0)
如果我猜对了,那么你正在尝试为滑块控件创建一个控件模板,并希望有一个TextBlock来显示滑块的值。在Thumb内部,滑块值无法访问,因此您需要使用我在此小代码示例中所做的操作。我使用TemplateBinding将Value属性添加到Thumbs DataContext,然后在我的TextBlock上使用了Binding,这很有效。
<Thumb x:Name="HorizontalThumb" Grid.Column="1" Height="12" Margin="0,22,0,50" Width="12" DataContext="{TemplateBinding Value}">
<Thumb.Template>
<ControlTemplate>
<Canvas Background="{StaticResource PhoneForegroundBrush}" Height="12" Width="12">
<Rectangle Fill="Transparent" Height="84" IsHitTestVisible="True" Canvas.Left="-24" Canvas.Top="-22" Width="60"/>
<TextBlock Text="{Binding}"></TextBlock>
</Canvas>
</ControlTemplate>
</Thumb.Template>
</Thumb>