Làm cách nào để căn giữa phần tử trong canvas wpf bằng thuộc tính được đính kèm?Cách căn giữa phần tử trong canvas wpf
Trả lời
Một cái gì đó như thế này.
double left = (Canvas.ActualWidth - element.ActualWidth)/2;
Canvas.SetLeft(element, left);
double top = (Canvas.ActualHeight - element.ActualHeight)/2;
Canvas.SetTop(element, top);
Cách duy nhất tôi biết để làm điều này là tìm ra kích thước của canvas và sau đó đặt thuộc tính dựa trên đó. Điều này có thể được thực hiện bằng phương thức thụ lý sự kiện cho SizeChanged
trên vải:
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);
}
sự kiện này sẽ kích hoạt khi tải cửa sổ. –
Nên, có. Nó sẽ kích hoạt bất cứ khi nào các thuộc tính ActualWidth/ActualHeight của canvas được thay đổi. (tức là trong khi cập nhật bố cục) – Robin
Tuyệt vời. Nhưng tôi tin rằng nó sẽ là Canvas.SetLeft và Canvas.SetTop; không phải là thể hiện của Canvas gốc. –
Bạn có thể đặt các Canvas và yếu tố mà bạn muốn được tập trung bên trong một Lưới:
<Grid>
<Canvas Width="200" Height="200" Background="Black" />
<Button Width="50" Height="20" > Hello
</Button>
</Grid>
Tôi đã xem qua bài viết này , bởi vì tôi đã tìm kiếm một cách để căn giữa phần tử trong Canvas chỉ trong XAML, thay vì sử dụng Thuộc tính được đính kèm.
Chỉ trong trường hợp, bạn đến với cùng lý do:
<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>
Tuyệt vời! Điều này làm việc "như là", không có mã phía sau. Tôi đã sử dụng nó để căn giữa UserControl, ở vị trí của Nhãn. –
Bây giờ có một lưới chậm bên trong. Một giải pháp mà không có một Grid sẽ được tốt đẹp. –
- 1. Phần tử căn giữa bên trong một phần tử (jQuery)
- 2. Cách căn giữa canvas trong html5
- 3. Cách căn chỉnh phần tử mẫu Căn chỉnh trong PdfPCell
- 4. Cách căn chỉnh các phần tử Mathjax
- 5. Làm cách nào để căn giữa các phần tử trong BoxLayout bằng cách sử dụng trung tâm của phần tử?
- 6. Tôi làm cách nào để đặt nhiều phần tử canvas vào một phần tử canvas?
- 7. WPF: Khoảng trắng giữa các phần tử trong ngăn xếp
- 8. WPF: cách làm cho (0,0) ở giữa bên trong Canvas
- 9. Cách căn giữa cửa sổ WPF trong Excel VSTO addin
- 10. Android: Căn chỉnh một phần tử bên dưới và ở giữa một phần tử khác
- 11. Làm cách nào để căn giữa văn bản trong phần tử rect trong d3?
- 12. Làm cách nào để tôi căn giữa phần tử span trong div
- 13. Làm cách nào để căn giữa các hình ảnh trong một phần tử LI?
- 14. Làm cách nào để tạo phần tử canvas trong Dart?
- 15. Trong html 5, cách định vị phần tử div trên phần tử canvas?
- 16. Làm cách nào để căn chỉnh hai phần tử trong phần tử DIV?
- 17. Trộn các phần tử canvas và CSS3
- 18. Cách căn chỉnh các phần tử trên thanh công cụ sang trái, giữa, phải
- 19. Làm cách nào để tôi có thể căn giữa phần tử với GWT?
- 20. Cách tải lên/POST nhiều phần tử canvas
- 21. căn chỉnh các phần tử vào giữa trong footer di động jquery
- 22. Tôi làm cách nào để căn chỉnh các phần tử div?
- 23. Biểu mẫu đầu vào bên trong phần tử canvas
- 24. Đưa phần tử tiến lên (Z Index) trong Silverlight/WPF
- 25. Cách căn giữa tiêu đề phần của UITableView
- 26. Làm cách nào để tạo phần tử nút được hiển thị theo chiều ngang trong căn giữa trong phần tử div?
- 27. Phần tử canvas html5 trong nền của trang của tôi?
- 28. Căn chỉnh các phần tử biểu mẫu trong css
- 29. CSS Dọc căn giữa
- 30. Bảng điều khiển ngăn xếp WPF Căn giữa
này có thể được viết bên trong một lớp học mà được thừa hưởng một lớp vải như một tài sản gắn liền. –