我正在将Wp81应用程序移植到UWP,并且似乎Hub布局策略已更改,并且它不再调整HubSections宽度以将其拉伸(几乎)到屏幕宽度。如何在UWP中实现这个功能而不在HubSections上设置绝对宽度?UWP中的HubSection默认宽度
详细了解我的使用情况: 在我HubSection我有一个形象,那不是被收缩到屏幕宽度(几乎是 - 使下部分是分享范围),它延伸到它的原生宽度。 TextBlock也是如此。看来在UWP HubSection没有根据屏幕宽度设置宽度或MaxWith。
我正在将Wp81应用程序移植到UWP,并且似乎Hub布局策略已更改,并且它不再调整HubSections宽度以将其拉伸(几乎)到屏幕宽度。如何在UWP中实现这个功能而不在HubSections上设置绝对宽度?UWP中的HubSection默认宽度
详细了解我的使用情况: 在我HubSection我有一个形象,那不是被收缩到屏幕宽度(几乎是 - 使下部分是分享范围),它延伸到它的原生宽度。 TextBlock也是如此。看来在UWP HubSection没有根据屏幕宽度设置宽度或MaxWith。
枢纽的目的是让用户发现的东西。所以该部分默认情况下不会被拉伸到全屏。对于你的情况,你最好试试Pivot控制。 Here是Pivot和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>
我的用例符合Hub设计准则。至少让我们假设它是这样做的。我在关于我想实现的问题中添加了详细的信息。 – bitninja
HubSection具有“宽度”,“最小宽度”,“最大宽度”属性。你可以在这里查看:https://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=zh-CN&k=k(Windows.UI.Xaml.Controls.HubSection);k(VS.XamlEditor);k (TargetFrameworkMoniker-.NETCore,Version%3Dv4.5.1)&rd = true –
如果要适应屏幕大小,可以使用VisualStateGroups。您可以参考此示例中的scenario2:https://code.msdn.microsoft.com/XAML-Hub-control-sample-5d116fa9 –
您是否尝试过检查/修改控件的样式? – Romasz
@Romasz是的,Hub风格或HubSection风格没有明确的宽度设置。 – bitninja