Silverlight 4: изменение размера динамических прямоугольников с помощью большого пальца - PullRequest
0 голосов
/ 21 июля 2011

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>

Я сталкиваюсь со странной проблемой, когда мне нужно нарисовать прямоугольники на холсте и сделать их изменяемыми, а также перемещаемыми (помещать их в любом месте холста).

Я достиг этого с помощью мышиных событий canvas;

  1. private void Canvas_MouseLeftButtonDown (отправитель объекта, MouseButtonEventArgs e) {}
  2. закрытый void Canvas_MouseMove (отправитель объекта, MouseEventArgs e) {}
  3. private void Canvas_MouseLeftButtonUp (отправитель объекта, MouseButtonEventArgs e) {}

Объяснение;На MouseLeftButtonDown я начинаю захватывать мышиные корниаты и продолжаю делать это с помощью перемещения мыши (с помощью этих кординатов увеличиваем и увеличиваем их ширину), на MouseLeftButtonUp я прекращаю слушать мышь и рисую эти кординаты в виде Rectangle на холсте и добавляю этот прямоугольник на холст как дочерний элемент.Я также добавляю 3 события мыши в этот прямоугольник;

  1. private void Rectangle_MouseLeftButtonUp (отправитель объекта, MouseButtonEventArgs e)
  2. закрытый void Rectangle_MouseMove (отправитель объекта, MouseEventArgs e)
  3. private void Rectangle_MouseLeftButtonDown (отправитель объекта, MouseButtonEventArgs e)

Эти события, которые я использую для идентификации данного прямоугольника (Rectangle_MouseLeftButtonDown) и перемещения этого прямоугольника к мыши, связывают (Rectangle_MouseMove) и прекращают прослушивание (Rectect_MouseMove) и прекращают прослушивание (Rectect_MouseMove).

Теперь я должен добавить функцию изменения размера в этом прямоугольнике.Я хочу добиться этого с помощью большого пальца, но я не могу этого достичь.

Может кто-нибудь, пожалуйста, помогите мне с этим.Заранее спасибо.

1 Ответ

0 голосов
/ 21 июля 2011

Добавление всей этой повторно используемой функциональности непосредственно к объектам кажется немного расточительным.

Почему бы просто не использовать такое поведение, как this ? Это то, для чего они действительно хороши. Они также украшены ручками и т. Д.

...