2016-08-24 5 views

答えて

6

ソリューション

IsDynamicOverflowEnabledプロパティを無効にし、RightHorizontalContentAlignmentを設定します。これを実行すると、Anniversary Update SDKの以前のバージョンと同じ動作になります。周年記念アップデートSDK(Windowsの10版1607)の問題

<CommandBar HorizontalContentAlignment="Right" 
       IsDynamicOverflowEnabled="False"> 
     <CommandBar.Content> 
      <TextBlock Text="Content" /> 
     </CommandBar.Content> 
    </CommandBar> 

Centered content in CommandBar

原因新しいプロパティがCommandBarコントロールに追加されました - IsDynamicOverflowEnabled。このプロパティはデフォルトでtrueに設定されています。その目的は、が、バーのプライマリエリアからセカンダリエリアへのアプリケーションバーコマンドを自動的にオーバーフローさせることです。

この追加では、コントロールの既定のテンプレートを変更する必要がありました。あなたはC:\Program Files (x86)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP\10.0.14393.0\Generic\generic.xamlCommandBarテンプレートのデフォルトに見れば、テンプレートが新しいVisualStateGroupが含まれていることがわかります。

デフォルトで
<VisualStateGroup x:Name="DynamicOverflowStates"> 
<VisualState x:Name="DynamicOverflowDisabled"/> 
<VisualState x:Name="DynamicOverflowEnabled"> 
    <VisualState.Setters> 
     <Setter Target="ContentControlColumnDefinition.Width" Value="Auto"/> 
     <Setter Target="PrimaryItemsControlColumnDefinition.Width" Value="*"/> 
    </VisualState.Setters> 
</VisualState> 

制御は、Autoから*PrimaryItemsControlColumnDefinition.WidthセットにContentControlColumnDefinition.Widthセットを持っていますこれは、コンテンツが、プライマリコマンドを入力した後に残っているすべての空き領域を埋めることを意味します。ただし、オーバーフローする前にできるだけ多くのスペースを取る必要があるため、この動作は動的オーバーフローには意味がありません。したがって、VisualStateDynamicOverflowEnabledは、列の幅を適切に切り替えます。

+0

詳細な説明をありがとうございます。 – kendoo

+0

あなたは歓迎です、幸せなコーディング:-)! –

関連する問題