Gần đây tôi đã phát hiện ra WPF hỗ trợ các đơn vị đo lường khác nhau trong XAML. Bên cạnh các DIP mặc định, cũng có hỗ trợ cho pixel, inch và cm (theo như tôi biết). Điều này cho phép nhà thiết kế viết XAML như sau:Các đơn vị WPF và Mã số Đằng sau
<Canvas>
<Line X1="0cm" X2="3cm" Y1="1cm" Y2="3cm" Stroke="Black"/>
</Canvas>
Tuy nhiên, bạn không thể ràng buộc các giá trị này. Hãy tưởng tượng chúng ta có một ViewModel với thuộc tính Dimension là một String, ví dụ "7cm". Theo dõi sẽ không hoạt động:
<Button Width="{Binding Dimension}">Test</Button>
FormatException bị ném. Tương tự như vậy, khi tạo một FrameworkElement
trong code-behind, như thế này:
Canvas1.Children.Add(new Button() { Width = "3cm", Content = "Test"});
Compilation thất bại vì ngoại lệ được ném vào xây dựng/bất cứ nơi nào bạn cố gắng tạo ra sự kiểm soát.
Tôi tự hỏi:
- Có thể sử dụng các đơn vị tự nhiên (trong trường hợp số liệu của tôi - cm) trong code-behind?
- Làm cách nào?
- Có danh sách đầy đủ các đơn vị mà WPF/XAML hỗ trợ không?
EDIT:
Dưới đây là một liên kết từ bình luận dưới đây, trong đó giải quyết câu hỏi này:
http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.width.aspx
Đây là những gì tôi đang tìm kiếm, cảm ơn bạn! –
Bạn được chào đón, vui mừng được trợ giúp :) –