簡體   English   中英

根據分辨率更改通用應用程序中的XAML保證金

[英]Change XAML Margin in universal app based on resolution

我正在為Wp8.1 / WinRt開發通用應用程序。

對於電話,我有一個gridview,它將包含堆棧面板的網格顯示為“ ItemTemplate”。

網格具有明確指定的邊距,如下所示:

 <GridView ItemsSource="{Binding CurrentItems}">
        <GridView.ItemTemplate>
            <DataTemplate>
               <Grid Width="140" Margin="6,0,6,6" x:Name="I_WANT_TO_ADJUST_MY_MARGINS">
                      <Border Background="{StaticResource PhoneAccentBrush}"/>
                        <Grid Height="140" Width="140">
                        <Image VerticalAlignment="Top" Margin="10" Width="100" Height="100" Source="{Binding Converter={StaticResource ImageConverter}}" HorizontalAlignment="Center" />
                    </Grid>
                    <Grid VerticalAlignment="Bottom">
                        <Border Background="{StaticResource PhoneBackgroundBrush}" Opacity="0.6"/>
                        <TextBlock Text="{Binding DisplayedName}" Style="{StaticResource BodyTextBlockStyle}" Margin="3" TextWrapping="Wrap"/>
                    </Grid>
                </Grid>
            </DataTemplate>
        </GridView.ItemTemplate>
  </GridView>

在6英寸的手機上,這看起來很棒,給了我3列的外觀。但是在小巧的手機上,雖然我得到了2列,但右邊的負空間真是太可怕了。

如果屏幕較小,我希望能夠使網格I_WANT_TO_ADJUST_MY_MARGINS的邊距更大?

注意:此布局專門用於在手機上運行。

這是我解決的方法:

  1. 將兩個數據模板(大/小屏幕)添加到資源字典中-我使用了頁面資源,但您可能可以使用任何資源。
  2. 將DataTemplateSelector添加到頁面資源。 將以上兩個模板指定為屬性,如下所示:

    <local:WpDataTemplateSelector x:Key="WpDataTemplateSelector" BigScreenTemplate="{StaticResource BigScreen}" SmallScreenTemplate="{StaticResource SmallScreen}"></converters:WpDataTemplateSelector>

  3. 在DataTemplateSelector中,使用以下命令確定屏幕寬度: Window.Current.Bounds.Width

  4. 在GridView上指定ItemTemplateSelector屬性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM