2010-08-26 26 views

Trả lời

9

Bạn có thể sử dụng bộ chuyển đổi cho mục đích này, và thư viện WPF Converters tôi bao gồm một ExpressionConverter cho phép bạn thực hiện chính xác rằng:

Width="{Binding Width, ElementName=lstMine, Converter={con:ExpressionConverter {}{0}-100}}" 
+0

bạn có thể xin giải thích phần này : {} {0} -100} Tôi đã biết về phương pháp này sau khi đọc câu trả lời của bạn và duyệt qua Google để tìm: http://www.thejoyofcode.com/WPF_Quick_Tip_Converters_as_MarkupExtensions.aspx có giống nhau không? – sarath

+0

@Sarath: liên kết bạn cung cấp là trình chuyển đổi với mục đích rất cụ thể: nhân. Bộ chuyển đổi biểu thức mà tôi cung cấp có khá nhiều biểu thức C# và đánh giá nó. Ví dụ, bạn có thể liên kết với ActualWidth và ActualHeight trong một đa ràng buộc, và tính tổng của chúng với '{0} + {1}'. Các số trong dấu ngoặc nhọn là phần giữ chỗ cho các giá trị bị ràng buộc. '{}' Hàng đầu chỉ là một cơ chế thoát trong XAML để cho nó không được xử lý phần mở rộng '{' tiếp theo. Vì vậy, biểu thức thực tế chỉ đơn giản là '{0} -100', và' {0} 'được thay thế bằng' Chiều rộng'. –

+0

Một điều cuối cùng: bạn có thể muốn 'ActualWidth' thay vì' Width'. Sau này không phải lúc nào cũng được thiết lập, và cho công cụ bố trí bao nhiêu chiều rộng bạn muốn phân bổ cho phần tử, trong khi trước đây luôn được đặt và chứa chiều rộng thực được phân bổ cho phần tử, thường khác nhau. –

3

sử dụng Chuyển đổi cho các mục đích

Các vấn đề liên quan