2012-11-07 11 views
5

Tôi đang sử dụng một WrapGrid như itemscontrol trong một ListView để trình bày các mặt hàng theo chiều ngang với mã sau đây XAML (WinRT)Stretch WrapGrid mục rộng

<ItemsPanelTemplate > 
    <WrapGrid x:Name="ContentGrid" MinWidth="200" MinHeight="0" VerticalAlignment="Top" HorizontalAlignment="Center" Orientation="Horizontal" Margin="0,0,0,5" >          
    </WrapGrid> 
</ItemsPanelTemplate> 

Bây giờ làm sao tôi có thể mục căng ngang khi chiều rộng lớn hơn MinWidth và Không có mục nào khác có thể được thêm ngang. (Tất cả các mặt hàng được liên kết đến trung tâm và có rất nhiều không gian trong hai bên theo chiều ngang)

<DataTemplate x:Key="CustomChildItemTemplete"> 
    <Grid Background="Red"> 
    </Grid> 
</DataTemplate > 

Xem chi tiết: Khi chiều rộng listview là khoảng 800 (xấp xỉ) nó được hiển thị 4 mặt hàng ngang (như tối thiểu chiều rộng mục là 200) nhưng nếu chiều rộng là 900 (4 mục có thể nhìn thấy) và khoảng trắng (50 px) nằm ở bên phải và bên trái của itemscontrol, làm cách nào tôi có thể xóa không gian trống này bằng cách tăng chiều rộng mục (chỉ cần chiều rộng mục phải là 225 khi listview chiều rộng là 900)

+1

Tôi không hiểu vấn đề của bạn rất tốt. Có thể ảnh chụp màn hình kết quả của bạn có thể hữu ích? –

+0

@NicolasVoron, Xem Chỉnh sửa – VibeeshanRC

+1

Đây có phải là động (kích thước của thay đổi ItemsControl của bạn hoặc nó được tự động đặt theo bố cục) hay bạn đặt chiều rộng hoặc các mục của bạnĐiều khiển chính mình? –

Trả lời

3

Cách dễ nhất là để ràng buộc MinWidth như thế này:

<ItemsControl x:Name="MyItemsControl"> 
    <ItemsPanelTemplate > 
     <WrapGrid x:Name="ContentGrid" MinWidth="{Binding Path=Width, MinWidth="{Binding RelativeSource={RelativeSource Mode=Self}, Converter={StaticRessource Myconverter}, ConverterParameter=[Here Nb of object that you want in one line]}" MinHeight="0" VerticalAlignment="Top" HorizontalAlignment="Center" Orientation="Horizontal" Margin="0,0,0,5" >          
     </WrapGrid> 
    </ItemsPanelTemplate> 
</ItemsControl> 

Và bộ chuyển đổi chỉ chia chiều rộng của các mục của bạnĐiều khiển bởi tham số (Nb của đối tượng mà bạn muốn trong một dòng). Vì vậy, các đối tượng được tự động ở kích thước mà bạn muốn!

+1

@vibeeshanRC vui lòng xem bài chỉnh sửa của tôi –

+0

Tôi không kiểm tra mã này, vì vậy nó có thể không hoạt động "nguyên trạng", nhưng ý tưởng là như vậy. bạn có thể thử thay vào đó với 'RelativeSource = {RelativeSource TemplatedParent}', hoạt động trên wpf, nhưng không được thử nghiệm với winRT –

+1

'RelativeSource = {RelativeSource Mode = TemplatedParent}}' dường như làm việc với winRT –