Я использую прямоугольник, нарисованный на украшении, чтобы отметить интересующую область на изображении.Проблема в том, что, если я изменю размер окна, прямоугольник не изменит размер.
Я новичок в WPF, поэтому я провел кучу исследований, пытаясь найти, что я могу, с помощью нескольких различных поисковых терминов.,На самом деле я только что выучил украшения таким образом, и я дошел до этого далеко, но я наткнулся на стену о том, как закончить этот последний кусок.Я знаю, что моя проблема основана на размере прямоугольника, но я не знаю, что захватывать / искать, чтобы настроить его, так как wpf изменяет размер фактического объекта изображения при изменении размера окна, поэтому нет никакого коэффициента масштабирования, на который можно смотреть.
Вот XAML для приложения, в котором я тестирую вещи.
<Window x:Class="TestingAdorners.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:TestingAdorners"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid ClipToBounds="True">
<AdornerDecorator>
<Image Name="Btn" Source="nyan.png" Stretch="Uniform"/>
</AdornerDecorator>
</Grid>
</Window>
Класс Adorner:
class RoiAdorner : Adorner
{
public Rect rectangle = new Rect();
public RoiAdorner(UIElement adornedElement) : base(adornedElement)
{
rectangle.Height = 30;
rectangle.Width = 100;
IsHitTestVisible = false;
}
protected override void OnRender(DrawingContext drawingContext)
{
Pen pen = new Pen(Brushes.Green, 5);
drawingContext.DrawRectangle(null, pen, rectangle);
}
}
И Xaml.cs
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
AdornerLayer.GetAdornerLayer(Btn).Add(new RoiAdorner(Btn));
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
}
}
Желаемый результат заключается в том, что прямоугольник масштабируется вместе с объектом изображения, чтобы он всегда покрывал одну и ту же область изображения.Проблема в том, что я не знаю, как получить масштабный коэффициент для увеличения и уменьшения масштаба при изменении размера окна.
Обновление: после обдумывания предложения Френчи я понял, что ответ прост: «Нормализовать ваши координаты»