wpf 这种形变的属性,如何用后台实现绑定啊~~
<Canvas><SliderName="s1"/><SliderName="s2"/><Thumbx:Name="t1"><Thumb.RenderTransform>...
<Canvas >
<Slider Name="s1" />
<Slider Name="s2" />
<Thumb x:Name="t1" >
<Thumb.RenderTransform>
<TransformGroup>
<RotateTransform Angle="{Binding ElementName=s1,Path=Value}" />
<ScaleTransform ScaleX="{Binding ElementName=s2,Path=Value}" ScaleY="{Binding ElementName=s2,Path=Value}"/>
</TransformGroup>
</Thumb.RenderTransform>
</Thumb>
</Canvas> 展开
<Slider Name="s1" />
<Slider Name="s2" />
<Thumb x:Name="t1" >
<Thumb.RenderTransform>
<TransformGroup>
<RotateTransform Angle="{Binding ElementName=s1,Path=Value}" />
<ScaleTransform ScaleX="{Binding ElementName=s2,Path=Value}" ScaleY="{Binding ElementName=s2,Path=Value}"/>
</TransformGroup>
</Thumb.RenderTransform>
</Thumb>
</Canvas> 展开
1个回答
展开全部
Transform后台只提供了SetValue和SetCurrentValue没有提供SetBinding。建议用Slider事件去做。
前台:
<Slider Name="s1" ValueChanged="s1_ValueChanged"/>
<Slider Name="s2" ValueChanged="s2_ValueChanged"/>
<Thumb x:Name="t1">
<Thumb.RenderTransform>
<TransformGroup x:Name="transGroup">
<!--<RotateTransform Angle="{Binding ElementName=s1, Path=Value}" />
<ScaleTransform ScaleX="{Binding ElementName=s2, Path=Value}" ScaleY="{Binding ElementName=s2, Path=Value}"/>-->
<RotateTransform x:Name="Trans1"/>
<ScaleTransform x:Name="Trans2"/>
</TransformGroup>
</Thumb.RenderTransform>
</Thumb>
后台:
private void s1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
Trans1.Angle = s1.Value;
}
private void s2_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
Trans2.ScaleX = s2.Value;
Trans2.ScaleY = s2.Value;
}
前台:
<Slider Name="s1" ValueChanged="s1_ValueChanged"/>
<Slider Name="s2" ValueChanged="s2_ValueChanged"/>
<Thumb x:Name="t1">
<Thumb.RenderTransform>
<TransformGroup x:Name="transGroup">
<!--<RotateTransform Angle="{Binding ElementName=s1, Path=Value}" />
<ScaleTransform ScaleX="{Binding ElementName=s2, Path=Value}" ScaleY="{Binding ElementName=s2, Path=Value}"/>-->
<RotateTransform x:Name="Trans1"/>
<ScaleTransform x:Name="Trans2"/>
</TransformGroup>
</Thumb.RenderTransform>
</Thumb>
后台:
private void s1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
Trans1.Angle = s1.Value;
}
private void s2_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
Trans2.ScaleX = s2.Value;
Trans2.ScaleY = s2.Value;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询