[英]XAML change TextBlock Margin property based on Rectangle's size
[英]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的邊距更大?
注意:此布局專門用於在手機上運行。
這是我解決的方法:
將DataTemplateSelector添加到頁面資源。 將以上兩個模板指定為屬性,如下所示:
<local:WpDataTemplateSelector x:Key="WpDataTemplateSelector" BigScreenTemplate="{StaticResource BigScreen}" SmallScreenTemplate="{StaticResource SmallScreen}"></converters:WpDataTemplateSelector>
在DataTemplateSelector中,使用以下命令確定屏幕寬度: Window.Current.Bounds.Width
在GridView上指定ItemTemplateSelector屬性
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.