値が変化する巻物があり、刻々と変化する値を書きたいと思ってLabel
います。
私はこれを試しました:
<Window x:Class="WpfApplication16.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:my="clr-namespace:WpfApplication16"
Title="Window1" Height="300" Width="300">
<Window.Resources>
<my:ValueAngleConverter x:Key="valueAngleConverter"/>
<my:ValueTextConverter x:Key="valueTextConverter"/>
</Window.Resources>
<Grid>
<Slider Name="knob" SmallChange="1">
<Slider.Template>
<ControlTemplate>
<Viewbox>
<Canvas Width="300" Height="300" Margin="5">
<Ellipse Fill="LightBlue" Width="300" Height="300" Canvas.Left="0" Canvas.Top="0"
Stroke="Black" StrokeThickness="10"
MouseLeftButtonUp="Ellipse_MouseLeftButtonUp"
MouseMove="Ellipse_MouseMove"/>
<Ellipse Fill="Black" Width="60" Height="60" Canvas.Left="120" Canvas.Top="120"/>
<Canvas>
<Line Stroke="Red" StrokeThickness="5" X1="150" Y1="30" X2="150" Y2="20"
MouseLeftButtonUp="Ellipse_MouseLeftButtonUp" MouseLeftButtonDown="Ellipse_MouseLeftButtonDown"/>
<Canvas.RenderTransform>
<RotateTransform CenterX="150" CenterY="150">
<RotateTransform.Angle>
<MultiBinding Converter="{StaticResource valueAngleConverter}">
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Value"/>
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Minimum"/>
<Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Maximum"/>
</MultiBinding>
</RotateTransform.Angle>
</RotateTransform>
</Canvas.RenderTransform>
</Canvas>
</Canvas>
</Viewbox>
</ControlTemplate>
</Slider.Template>
</Slider>
<Label Content="{Binding Value, ElementName=knob, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
スライダー コンテンツの外観を楕円形のスライダーに変更しました (興味がある場合は、完全なコードを添付できます)。
しかし、私の問題は私のラベルにあります。スクロール値を変更すると変更したい。現在、最初の値が表示されていますが、スクロールがスタックされ (スクロールできません)、その値を変更することはできません。
スクロール値をラベルコンテンツにバインドするために私が間違っていることについて何か考えはありますか?