我是Silverlight和XAML的新手。在尝试学习语法和最佳实践时,我仍然遇到了一些实现事件处理程序的方式中的差异(或者至少对我来说似乎是这样)。XAML中的事件处理程序或代码隐藏
在从MSDN一个example我看到用下面的代码:
<UserControl x:Class="DragAndDropSimple.Page"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300">
<Canvas x:Name="rootCanvas"
Width="640"
Height="480"
Background="Gray"
>
<!-- You can drag this rectangle around the canvas. -->
<Rectangle
MouseLeftButtonDown="Handle_MouseDown"
MouseMove="Handle_MouseMove"
MouseLeftButtonUp="Handle_MouseUp"
Canvas.Left="30" Canvas.Top="30" Fill="Red"
Width="50" Height="50" />
</Canvas>
</UserControl>
当鼠标处理程序但是设置,在其它code我看到在后面的代码中使用这种方法:
public Window1()
{
InitializeComponent();
TransformGroup group = new TransformGroup();
ScaleTransform xform = new ScaleTransform();
group.Children.Add(xform);
TranslateTransform tt = new TranslateTransform();
group.Children.Add(tt);
image.RenderTransform = group;
image.MouseWheel += image_MouseWheel;
image.MouseLeftButtonDown += image_MouseLeftButtonDown;
image.MouseLeftButtonUp += image_MouseLeftButtonUp;
image.MouseMove += image_MouseMove;
}
我会假设在MSDN上的例子是推荐的方式,但是,我倾向于喜欢第二种方法。
这种情况是否有最佳做法?
没有!使用命令! ;)我会写一个适当的样本作为答案,但我自己有点生疏 – 2010-01-14 16:20:14