2009-02-11 27 views
6

Vấn đề này bắt nguồn từ việc không thể lấy TextBlock của tôi để bọc. Về cơ bản như là một nỗ lực cuối cùng mương tôi đang thiết lập MaxWidth trên các cột của lưới container của tôi. Tôi đã rất ngạc nhiên khi thấy rằng nhãn và hộp văn bản con của tôi vẫn làm bất cứ điều gì họ muốn (trẻ em xấu, BAD) và không bị giới hạn bởi cột của tôi là MaxWidth = "200".Cột Lưới WPF MaxWidth không được thi hành

Những gì tôi thực sự cố gắng làm là để cho TextBlock của tôi điền vào chiều rộng có sẵn và quấn nếu cần thiết. Cho đến nay sau khi thử nhiều biến thể của HorizontalAlignment = "Stretch" trên mọi phụ huynh đã biết trong vũ trụ, không có gì hoạt động, ngoại trừ thiết lập MaxWidth = "400" rõ ràng hoặc bất kỳ số nào trên TextBlock. Điều này là không tốt bởi vì tôi cần TextBlock để điền vào chiều rộng có sẵn, không bị giới hạn bởi một số số cố định. Cảm ơn!

<ItemsControl> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <StackPanel /> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition MaxWidth="200" SharedSizeGroup="A" /> 
       <ColumnDefinition MaxWidth="200" SharedSizeGroup="B" /> 
      </Grid.ColumnDefinitions> 

      <Label VerticalAlignment="Top" Margin="0 5 0 0" Grid.Column="0" Style="{StaticResource LabelStyle}" Width="Auto" Content="{Binding Value.Summary}" /> 
      <TextBlock Grid.Column="1" Margin="5,8,5,8" FontWeight="Normal" 
         Background="AliceBlue" 
         Foreground="Black" Text="{Binding Value.Description}" 
         HorizontalAlignment="Stretch" 
         TextWrapping="Wrap" Height="Auto" /> 
      </Grid> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

Trả lời

2

Tôi đã cố gắng sao chép sự cố của bạn bằng cách dán mọi thứ giữa các phần tử lưới vào Kaxaml nhưng mọi thứ kết thúc tốt đẹp như bạn mong đợi. (Tôi đã chèn các chuỗi thông thường nơi bạn đang thực hiện các ràng buộc và xóa kiểu Label).

Có thể vấn đề là cao hơn cây.

Tôi muốn đề xuất dán các khối vào Kaxaml hoặc tương tự như kiểm tra và xem phụ huynh nào phá vỡ giao diện người dùng của bạn.

1

Tôi đã cung cấp câu trả lời cho câu hỏi này, chỉ có nó đang sử dụng một ListView thay vì một ItemsControl nhưng vấn đề có thể giống nhau. Có lẽ một ScrollViewer xung quanh ItemPresenter của bạn và bạn cần phải chỉnh sửa một bản sao của mẫu ItemsControl.

WPF ListView TextBlock TextWrapping

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