Tôi đang cố gắng để làm cho các căng thẳng đứng để làm việc như mong đợi tôi WPF, nhưng đối với một số lý do nó chỉ mất không gian cần thiết, và không phải là không gian có sẵn.WPF, Bắt verticalstretch hoạt động như mong đợi!
Trước tiên, tôi đang sử dụng WPF với C# và Prism.
Trong Shell.xaml (chính xaml cho ứng dụng), tôi có một lưới với 2 cột và một hàng. Ý tưởng là để có một bảng điều khiển bên và một khu vực ứng dụng chính. Lưới khu vực ứng dụng chính được đặt thành Chiều rộng tự động và Chiều cao tự động. Điều này làm việc như mong đợi, và nó có quy mô để phù hợp với toàn bộ ứng dụng trong Chiều cao và Chiều rộng.
Sau đó, tôi đang sử dụng lăng kính để chèn chế độ xem (dưới dạng thành phần UserControl) vào vùng ứng dụng chính. UserControl cũng được đặt thành Auto Width và Height, và bằng cách nhìn vào các thiết lập mặc định trong Expression Blend, HorizontalAlignment và VerticalAlignment được thiết lập để kéo dài!
Tuy nhiên, tính năng UserControl tải lăng kính chỉ kéo dài theo Chiều rộng và không cao! Bằng cách cho màu nền này cho phản hồi trực quan, tôi có thể thấy rằng nó chỉ chiếm không gian dọc khi cần thiết và không phải toàn bộ khu vực có sẵn!
Giải pháp này có thể là giải pháp gì? Tôi đã cố gắng đi trough tất cả các thiết lập một cách thủ công ghi đè chúng để chiều rộng và chiều cao tự động, ngang và thẳng đứng Alignment để Stretch, nhưng không có gì có vẻ làm việc như mong đợi!
Một số mã: (Shell.xaml)
<Window Height="1140" Width="1450">
<Grid Margin="0" Background="White">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid Background="#FFEEEEEE" Grid.Column="0" Grid.Row="0">
</Grid>
<ItemsControl Width="Auto" Height="Auto" Grid.Row="0" Grid.Column="1" Name="MainRegion" cal:RegionManager.RegionName="MainRegion" Padding="10" Margin="10, 0, 0, 0" Background="#FFFFFFD5" />
</Grid>
</Grid>
</Window>
(quan điểm cho rằng nên thừa hưởng chiều cao mẹ):
<UserControl Width="Auto" Height="Auto" Background="Red" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<!-- I want this to take the full width and height of the parent -->
</UserControl>
Vì vậy, đây là một limitaion trong cách các quan điểm được nạp vào xaml chính, hay đây là giới hạn UserControl, hay cái gì khác mà tôi không hiểu?
Chỉ cần làm rõ; Tôi thấy màu nền của ItemsControl được định nghĩa trong Shell.xaml kéo dài cả Horizontal và Vertical, nhưng không phải là nền của khung nhìn được nạp vào ItemsControl.
Lưu ý rằng tôi đã xóa một số xaml để làm cho điểm dễ hiểu hơn!
Cảm ơn!
Bạn có thể đánh dấu mục này làm câu trả lời. –
có, trong một ngày vì đó là câu trả lời của riêng tôi –
Nếu bạn chỉ hiển thị một mục tại sao không sử dụng ContentControl thay vì một ItemsControl. Giả sử rằng bạn không cố tình đặt một số vật phẩm lên nhau. – jpierson