Как я могу центрировать элемент в холсте wpf с помощью прикрепленных свойств?Как центрировать элемент в холсте wpf
ответ
Нечто подобное.
double left = (Canvas.ActualWidth - element.ActualWidth)/2;
Canvas.SetLeft(element, left);
double top = (Canvas.ActualHeight - element.ActualHeight)/2;
Canvas.SetTop(element, top);
Единственный способ я знаю, чтобы сделать это, чтобы выяснить размер холста, а затем установить свойства, основанные от этого. Это может быть сделано с помощью обработчика событий для SizeChanged
на холсте:
parentCanvas.SizeChanged += new SizeChangedEventHandler(parentCanvas_SizeChanged);
void parentCanvas_SizeChanged(object sender, SizeChangedEventArgs e)
{
parentCanvas.SetLeft(uiElement, (parentCanvas.ActualWidth - uiElement.ActualWidth)/2);
parentCanvas.SetTop(uiElement, (parentCanvas.ActualHeight - uiElement.ActualHeight)/2);
}
это событие будет срабатывать при загрузке окна. –
Должно быть, да. Он будет срабатывать при изменении свойств ActualWidth/ActualHeight на холсте. (то есть при обновлении макета) – Robin
Отлично. Но я считаю, что это должны быть Canvas.SetLeft и Canvas.SetTop; а не экземпляр родительского холста. –
Вы можете поставить Canvas и элемент, который вы хотите быть в центре внутри сетки:
<Grid>
<Canvas Width="200" Height="200" Background="Black" />
<Button Width="50" Height="20" > Hello
</Button>
</Grid>
Я наткнулся на этот пост , потому что я искал способ центрировать элемент внутри Canvas только в XAML, вместо использования Attached Properties.
Только в случае, вы пришли по той же причине:
<Canvas x:Name="myCanvas">
<Grid Width="{Binding ActualWidth, ElementName=myCanvas}"
Height="{Binding ActualHeight, ElementName=myCanvas}">
<Label Content="Hello World!"
HorizontalAlignment="Center"
VerticalAlignment="Center"
/>
</Grid>
</Canvas>
Удивительный! Это работает «как есть», без кода. Я использовал его для центрирования UserControl вместо метки. –
Теперь внутри есть медленная сетка. Решение без сетки было бы неплохо. –
- 1. WPF Как центрировать Image.Source
- 2. Как центрировать изображение в холсте Python Tkinter
- 3. Как центрировать выравнивание текста в HTML-холсте?
- 4. WPF: выберите дочерний элемент управления на холсте
- 5. Imagemagick: Как центрировать картинку на прозрачном холсте
- 6. Как центрировать фиксированный элемент?
- 7. Как центрировать этот элемент
- 8. Как центрировать этот элемент?
- 9. Идеальный центр на холсте WPF
- 10. Как центрировать элемент?
- 11. Как центрировать смелый элемент?
- 12. Как центрировать элемент в IE6
- 13. Как удалить элемент wpf на холсте с помощью имени тега?
- 14. Как правильно центрировать холст WPF?
- 15. Центрировать фон TabControl в WPF
- 16. Как центрировать элемент внутри DIV
- 17. Как автоматически центрировать фиксированный элемент?
- 18. Как центрировать элемент по вертикали?
- 19. Как центрировать этот элемент span?
- 20. Как центрировать элемент внутри div
- 21. WPF - Как центрировать данные столбца в ListView?
- 22. Холст на холсте WPF
- 23. Как центрировать масштабированный элемент SVG на точке?
- 24. Линия сетки в холсте WPF
- 25. Как изменить положение на холсте в WPF?
- 26. Как перемещать фигуру на холсте в WPF?
- 27. Центрировать элемент по вертикали
- 28. Как центрировать элемент списка в загрузочном навигаторе?
- 29. Как центрировать li> элемент в div?
- 30. Как центрировать элемент привязки в CSS?
это может быть записано внутри класса, который наследует класс холста в качестве вложенного свойства. –