2016-12-12 2 views
-1

Я хотел бы нарисовать некоторый прямоугольник над определенной областью окна в приложении WPF. Проблема заключается в том, как сделать это таким образом, что при изменении размера окна размер пропорционально изменяется? Любые подсказки высоко оценены.Цветной оверлей в WPF

+0

Не можете вы перекрасить прямоугольник отношением новых координатах окна? – Dia

+0

'this.SizeChanged + = (_, __) => {// выполняем ваши вычисления здесь и перерисовываем прямоугольник}'? –

ответ

0

Вы могли бы сделать что-то подобное в коде окна позади файла:

//Constructor 
public MyWindow() { 

    InitializeComponent(); 

    //Register the SizeChanged-event 
    this.SizeChanged += OnSizeChanged; 
} 

private void OnSizeChanged(object sender, SizeChangedEventArgs e) 
{ 
    var parentWindow = (Window)sender; 
    var sizeOfRectangle = CalculateSizeOfRectangle(parentWindow.actualHeight, parentWindow.actualWidth); 

    // assuming you have a reference to your colored rectangle here (e.g. Name defined in XAML code) 
    ColoredRectangle.Width = sizeOfRectangle.Width; 
    ColoredRectangle.Height = sizeOfRectangle.Height; 
} 

private Size CalculateSizeOfRectangle(double height, double width) 
{ 
    int height = ....; // Calculate height here 
    int width = ....; // Calculate width her 
    return new Size(width, height); 
} 
Смежные вопросы