【发布时间】:2011-07-21 05:19:28
【问题描述】:
XAML
<Canvas x:Name="cvsBurstImage" MouseLeftButtonDown="cvsBurstImage_MouseLeftButtonDown" Style="{StaticResource BurstCanvasStyle}">
<Viewbox x:Name="vbBurstImage" Style="{StaticResource ViewboxCanvasStyle}">
<Image x:Name="imgBurstImage" Source="../Assets/Images/default_burst_image.png" ImageFailed="imgBurstImage_ImageFailed"/>
</Viewbox>
</Canvas>
我面临一个奇怪的问题,我需要在画布上绘制矩形并使其可调整大小和可移动(将它们放置在画布中的任何位置)。
我已经通过画布的鼠标事件实现了这一点;
- private void Canvas_MouseLeftButtonDown(object sender,MouseButtonEventArgs e) {}
- private void Canvas_MouseMove(object sender, MouseEventArgs e) {}
- private void Canvas_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) {}
解释; 在 MouseLeftButtonDown 上,我开始捕获鼠标坐标并通过鼠标移动继续这样做(使用这些坐标制作高度和宽度),在 MouseLeftButtonUp 上,我停止监听鼠标并将这些坐标绘制为画布上的矩形并将此矩形作为子元素添加到画布。我还在这个矩形中添加了 3 个鼠标事件;
- private void Rectangle_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
- private void Rectangle_MouseMove(object sender, MouseEventArgs e)
- private void Rectangle_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
我使用这些事件来识别给定的矩形 (Rectangle_MouseLeftButtonDown) 并将这个矩形移动到鼠标坐标 (Rectangle_MouseMove) 并在 (Rectangle_MouseLeftButtonUp) 处停止监听。
现在,我必须在这个矩形中添加调整大小功能。我希望使用 Thumb 来实现这一点,但我无法实现这一点。
有人可以帮我解决这个问题吗? 提前致谢。
【问题讨论】:
标签: silverlight resize silverlight-4.0