2010-07-19 21 views
5

Tôi có một ngăn xếp với các hộp kiểm. Tôi dường như không thể tạo khoảng cách giống nhau giữa các hộp kiểm có thuộc tính ký quỹWPF: Khoảng trắng giữa các phần tử trong ngăn xếp

Some1 có thể cho tôi biết tôi đang làm gì sai?

Đoạn code dưới đây mang lại cho tôi điều này:

http://www.shrani.si/f/1Y/M6/4eniAdAw/margin.png http://www.shrani.si/f/1Y/M6/4eniAdAw/margin.png

Như bạn thấy, khoảng cách giữa các yếu tố không phải là hằng!

<StackPanel MinWidth="150" cal:Bind.Model="{Binding}" Orientation="Horizontal"> 
    <StackPanel.Resources> 
     <Style TargetType="{x:Type CheckBox}"> 
      <Setter Property="Margin" Value="0,0,20,0"/> 
     </Style> 
    </StackPanel.Resources> 
    <CheckBox IsChecked="{Binding IsShown}" Content="{Binding ModuleName, Converter={StaticResource localizeModuleAndFunctionConverter}}" 
       cal:Message.Attach="[Event Click] = [Action FilterShownModuleFunctions]" /> 
</StackPanel> 
+0

Bạn có thể đính kèm hình ảnh ở đây không? – Amsakanna

+0

Bạn có chắc các hộp kiểm nằm trong StackPanel không? Bạn có thể kiểm tra xem có bất kỳ kiểu toàn cục nào được xác định cho Checkbox không? – Ragunathan

+1

Đây có phải là StackPanel "độc lập" hay là bảng điều khiển của một ItemsControl thuộc loại nào đó? Bạn chỉ hiển thị một Hộp kiểm trong ví dụ của mình, do đó khó có thể cho biết hình ảnh khớp với mã như thế nào. –

Trả lời

4

Tôi đoán vấn đề của bạn là thuộc tính MinWidth = "150". Tôi nghĩ rằng bạn đã có tổng cộng 5 stackpanels ngay bây giờ. Bạn có 4 ngăn xếp ngăn xếp mỗi hộp chứa hộp kiểm của riêng mình. Sau đó, tôi giả sử bạn đã có một bảng xếp hạng thứ 5 giữ 4 ngăn xếp ngăn xếp của bạn.

Nếu điều này đúng ... thì vấn đề là mỗi hộp kiểm của bạn nằm trong bảng ngăn xếp có chiều rộng 150 (tối thiểu) nhưng bảng ngăn xếp thứ ba của bạn lớn hơn 150 vì văn bản quá dài lớn hơn để chứa toàn bộ văn bản (cộng với lợi nhuận của bạn là 20).

Xóa MinWidth = "150" và tôi nghĩ bạn sẽ nhận được khoảng 20 giữa văn bản của mỗi hộp kiểm. (nếu bạn muốn khoảng trống giữa các hộp thực tế của hộp kiểm, thì bạn nên giữ cho độ rộng của mình nhưng làm cho nó đủ rộng để nó có kích thước tối thiểu bằng hộp kiểm chứa văn bản dài nhất).

+0

Ah, đoán tốt. Tôi đã không nghĩ về nó theo cách đó - tôi giả định một tỷ lệ StackPanel-to-CheckBoxes một đến nhiều, không phải là mỗi CheckBox là của riêng mình. Tôi đoán rằng đặt ra câu hỏi "tại sao?" nhưng đó không phải là những gì đang được hỏi ở đây ... :) –

+0

thanx rất nhiều. Tôi đã thay đổi giá đỡ của MinWidth, nhưng nó không giúp được gì. Việc xóa nó đã giúp ích khi tôi muốn lề giữa các hộp kiểm văn bản và không thực tế. Trước khi tôi thực hiện một câu hỏi khác, có thể tôi có thể yêu cầu ở đây ... Tôi muốn loại bỏ độ rộng thiết lập cho các nút. Cách để làm cho các nút trên toàn cầu thay đổi kích cỡ tùy thuộc vào văn bản của họ trong toàn bộ ứng dụng là gì? Thats một câu hỏi ... thứ hai là nếu tôi có ba nút một bên cạnh eachother, làm thế nào để tôi đặt tất cả cùng một chiều rộng (chiều rộng của nút lớn nhất). Hy vọng tôi có ý nghĩa ... – no9

+0

nevermind, tôi giải quyết nó bằng cách sử dụng uniformgrid! – no9