我对Silverlight来说是全新的,而且我已经深入到了我的脑海中,所以我可能会遗漏一些非常明显的东西。我正在使用图像编辑器,我的主页上有一个按钮,用于在画布上旋转图像或文本。但是按钮没有调用我的旋转方法。编辑:现在。
这是我写的与按钮相关的所有代码
MainPage.xaml
<Button Command="{Binding Path=Project.RotateCWElementCommand}"..../>
Project.cs -
#region properties
public ICommand RotateCWElementCommand { get; set; }
#endregion
#region methods
public Project(int siteID)
{
this.RotateCWElementCommand = new DelegateCommand(RotateCWElement, CanRotateCWElement);
}
private void RotateCWElement(object param)
{
FrameworkElement element = this.SelectedElement;
RotateTransform cwRot = new RotateTransform();
cwRot.Angle = 90;
cwRot.CenterX = element.ActualWidth * 0.5;
cwRot.CenterY = element.ActualHeight * 0.5;
element.RenderTransform = cwRot;
}
#end region
#region Command conditions
private bool CanRotateCWElement(object param)
{
return true;
}
#endregion
现在的问题是它只会旋转一次,而且某些图像质量也会丢失。当我点击并拖动它们时,图像会奇怪地移动,有时当我点击完整的图像质量时,图像会恢复。
如果有人对此有任何想法,那就太好了。
答案 0 :(得分:1)
听起来Button.DataContext
不包含名为Project.RotateCWElementCommand
验证您的按钮DataContext
是否有名为Project
的属性,并且Project
有一个名为RotateCWElementCommand
的属性
答案 1 :(得分:0)
Visual Studio中的输出窗口非常有助于在Silverlight中查找绑定问题,并有助于澄清Rachel的建议是否存在问题。