2013-01-18 46 views
0

我有一个滚动条来改变它的值,并且我想写一个Label每时每刻都在做的值。如何将滚动值绑定到WPF中的标签?

我曾尝试这样的:

<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> 

我已经改变滑块内容的外观,以一个椭圆形的滑动件(如果有人感到好奇我可以附加全码)。

但我的问题与我的标签一致。当我更改滚动值时,我希望它改变。现在它显示第一个值,但叠加滚动(我无法滚动)并且无法更改其值。

任何想法我做错了,将滚动值绑定到标签内容

回答

1

以下代码有效。我看到的区别是,在绑定你还没有宣布Path=Value,但我不认为这应该重要。

<StackPanel> 
    <Slider Name="knob" SmallChange="1"/>   
    <Label Content="{Binding ElementName=knob, Path=Value, UpdateSourceTrigger=PropertyChanged}"/> 
</StackPanel> 

Template应当在其中Value绑定点进行检查。

相关问题