2016-04-12 9 views
0

ハブコンポーネントを使用してワイドモード(デフォルト)で2つのHubSectionを表示し、次にHubSectionを1つだけ表示するように切り替えるUWPアプリケーションを構築しようとしています。次のように狭いモードでXamlのVisual State Managerでグリッド幅= "*"を設定する

マイHubSectionが定義されています。質問は、私はの幅を設定しない方法です

 <VisualStateManager.VisualStateGroups> 
     <VisualStateGroup x:Name="AdaptiveStates"> 
      <VisualState x:Name="DefaultState"> 
       <VisualState.StateTriggers> 
        <AdaptiveTrigger MinWindowWidth="720" /> 
       </VisualState.StateTriggers> 
       <VisualState.Setters> 
        <Setter Target="Column1.Width" Value="500" /> 
        <Setter Target="Column2.Width" Value="700" /> 

       </VisualState.Setters> 
      </VisualState> 

      <VisualState x:Name="NarrowState"> 
       <VisualState.StateTriggers> 
        <AdaptiveTrigger MinWindowWidth="0" /> 
       </VisualState.StateTriggers> 

       <VisualState.Setters> 
        <Setter Target="Column1.Width" Value="*" /> <--- This line doesn't work as * is not a number 
        <Setter Target="Column2.Width" Value="0" /> 

       </VisualState.Setters> 
      </VisualState> 
     </VisualStateGroup> 
    </VisualStateManager.VisualStateGroups> 

<Hub> 
     <HubSection x:Name="Column1" Header="section 1" Background="Cornsilk"> 
     </HubSection> 
     <HubSection x:Name="Column2" Header="section 2" Background="Chocolate"> 
     </HubSection> 
    </Hub> 

マイビジュアルステートマネージャーは、次のように定義されていますVisual State Managerのコンポーネントを*または「使用可能なすべてのスペースを使用する」に設定しますか?

+0

Aのハブは、このために使用することがおそらく正しい制御ではない視覚的な状態マネージャのものを使用するために必要なhttps://msdn.microsoft.com/en-us/windows/uwp/layout/navigation-basics – AndrewJE

答えて

1

HubControlについてはわかりませんが、(グリッドを非表示にするために)通常のグリッドで同じことを行っています。ここ

出典:https://github.com/AppCreativity/Kliva/blob/master/src/Kliva/Views/MainPage.xaml#L75

私はcolumndefinitionsに名前を付け、ここではナビゲーションのガイドラインを読んだ後

+0

ありがとうございます。私には考えがあり、ハブのアイデアはこの特定の問題に最も適しているとは思わない。私は、ピボットコントロールの使用に切り替わり、データをもう少し再構成します。あなたの答えは上記の質問を達成するための最良の方法ですが、私は答えを受け入れます。 – AndrewJE

関連する問題