我想使用LayoutTransform
来旋转图像控制,但我面临的问题是我可以在XMAL
中执行此操作,但不能使用代码。
我是WPF的新手
这里是XMAL
`
<Image Grid.Column="1" Grid.Row="4" Height="155" HorizontalAlignment="Left"
Margin="103,0,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="139"
Source="/7SegmentLed;component/Images/Caster1.png" Grid.RowSpan="2" >
<Image.LayoutTransform>
<RotateTransform Angle="{Binding AngleSlider}" />
</Image.LayoutTransform>
</Image>
和CODE
double AngleSlider = 90.0;
image1.DataContext = AngleSlider;
我想从我后面计算的值动态更新它,但事实是我不想更改它固定的图像并且不会改变
如果有人让我知道我做错了什么会很棒
答案 0 :(得分:2)
你的装订有点偏;虽然您可以将DataContext
设置为double,但您的绑定将尝试在您的double上找到名为AngleSlider
的属性,这显然不存在。
因此,请创建一个类型为Double
的属性的类AngleSlider
,如下所示:
public class MySliderDataContext : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public double AngleSlider
{
get { return _angle; }
set
{
_angle = value;
if(PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("AngleSlider"));
}
}
}
创建此类的实例,并将其保存在Window上的字段中,然后将该实例分配给DataContext
:
private MySliderDataContext _sliderAngle;
image1.DataContext = _sliderAngle;
现在,必要时你可以这样做:
_sliderAngle.SliderAngle = 90;
你的图像应该旋转。