Рисование на холсте не сохраняется правильно WPF - PullRequest
0 голосов
/ 22 мая 2018

У меня есть изображение внутри холста, пользователь может щелкнуть по изображению, и там, где он нажал, появляется зеленая точка.

Image shown

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

Image saved

XAML:

<Canvas x:Name="ImageCanvas"
        Grid.Column="1"
        Background="Transparent">

    <Image x:Name="SelectedPartImage"
           Width="{Binding ElementName=ImageCanvas, Path=ActualWidth}"
           Height="{Binding ElementName=ImageCanvas, Path=ActualHeight}"
           Panel.ZIndex="0"
           MouseLeftButtonDown="OnMouseLeftButtonDown"
           Source="{Binding SelectedPartImageSource}" />

    <Ellipse x:Name="EllipseClick"
             Width="15"
             Height="15"
             Panel.ZIndex="1"
             Fill="{StaticResource GreenColor}"
             Visibility="Hidden" />
</Canvas>

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

Заранее спасибо!

1 Ответ

0 голосов
/ 23 мая 2018

UIElement не отображается, как только вы задаете его свойства в своем коде.Это будет сделано только после того, как этот метод будет возвращен.

В этом случае попытка сохранить EllipseClick сразу после обновления его позиции не сохранит новую позицию, а ее исходную позицию (0,0), поскольку она не установлена!

Исправитьдля этого либо переместите метод Save () в другое событие, либо вызовите

ImageCanvas.UpdateLayout(); 

после обновления позиции EllipseClick.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...