UWP 中的 HubSection 默认宽度
HubSection default width in UWP
我正在将一个 Wp81 应用程序移植到 UWP,Hub 布局策略似乎发生了变化,它不再调整 HubSections 宽度以将其(几乎)拉伸到屏幕宽度。如果不在 HubSections 上设置绝对宽度,如何在 UWP 中实现这一点?
关于我的用例的详细信息:
在我的 HubSection 中,我有一个图像,它没有缩小到屏幕宽度(几乎-以便下一部分可见),而是拉伸到其原始宽度。 TextBlock 也是如此。 UWP HubSection 中似乎没有根据屏幕宽度设置 Width 或 MaxWith。
集线器的目的是让用户发现东西。所以默认情况下该部分不会拉伸到全屏。对于您的情况,您最好尝试使用 Pivot 控件。
Here 是 Pivot 和 Hub 的设计指南。
此外,如果你还想使用Hub,并且希望样式适应不同的屏幕尺寸,下面是VisualStateManager的简单解决方案:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="Phone" >
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="1" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="HeroImg.Width" Value="100" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Tablet" >
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="600" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="HeroImg.Width" Value="800" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Hub Header="News" >
<HubSection Header="Hero" x:Name ="HeroImg" >
<HubSection.Background>
<ImageBrush ImageSource="Assets/circle_hero.jpg" Stretch="UniformToFill"/>
</HubSection.Background>
</HubSection>
</Hub>
</Grid>
我正在将一个 Wp81 应用程序移植到 UWP,Hub 布局策略似乎发生了变化,它不再调整 HubSections 宽度以将其(几乎)拉伸到屏幕宽度。如果不在 HubSections 上设置绝对宽度,如何在 UWP 中实现这一点?
关于我的用例的详细信息: 在我的 HubSection 中,我有一个图像,它没有缩小到屏幕宽度(几乎-以便下一部分可见),而是拉伸到其原始宽度。 TextBlock 也是如此。 UWP HubSection 中似乎没有根据屏幕宽度设置 Width 或 MaxWith。
集线器的目的是让用户发现东西。所以默认情况下该部分不会拉伸到全屏。对于您的情况,您最好尝试使用 Pivot 控件。 Here 是 Pivot 和 Hub 的设计指南。
此外,如果你还想使用Hub,并且希望样式适应不同的屏幕尺寸,下面是VisualStateManager的简单解决方案:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="Phone" >
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="1" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="HeroImg.Width" Value="100" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Tablet" >
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="600" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="HeroImg.Width" Value="800" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Hub Header="News" >
<HubSection Header="Hero" x:Name ="HeroImg" >
<HubSection.Background>
<ImageBrush ImageSource="Assets/circle_hero.jpg" Stretch="UniformToFill"/>
</HubSection.Background>
</HubSection>
</Hub>
</Grid>