2016-04-13 5 views
1

私はWindows 8ストアのデスクトップアプリケーションで作業しています。私はBottomAppBar内の私のAppBarButtonで奇妙な問題が発生しています。私のAppBarButtonがTextBlockスタイルからマージンを継承するのはなぜですか?

これはただ何もXAMLで設定されていないことを示すために私のBottomAppBarのコードです:

<Page.BottomAppBar> 
     <CommandBar Background="SlateGray"> 
      <AppBarButton Label="UseGPS" 
          Icon="Target"/> 
      <AppBarButton Label="Reset" 
          Icon="Clear"/> 
      <AppBarButton Label="Save to File" 
          Icon="Save" /> 
      <AppBarSeparator /> 
      <AppBarButton Label="Copy Longitude" 
          Icon="Copy"/> 
      <AppBarButton Label="Copy Latitude" 
          Icon="Copy" /> 
     </CommandBar> 
    </Page.BottomAppBar> 

本当の問題は、私のGeneric.Xamlリソースディクショナリ内でこのXAMLコードである:

<Style TargetType="TextBlock"> 
     <Setter Property="VerticalAlignment" 
       Value="Center" /> 
     <Setter Property="FontFamily" 
       Value="Segoe UI" /> 
     <Setter Property="FontSize" 
       Value="26" /> 
     <Setter Property="Foreground" 
       Value="{StaticResource ApplicationForegroundThemeBrush}" /> 
     <Setter Property="Margin" 
       Value="10,0" /> 
    </Style> 

具体的に、この行:ボタンのアイコンがクリップされます代わりにこのコードで<Setter Property="Margin" Value="10,0" />

その行をコメントアウトされている場合

Clipped Icons

私はこのような通常の探してアイコンを取得:

Non Clipped Icons

私は、私のように両方のためのMargin=0を設定しようとしているコマンドバーとAppBarButtonの両方にStyle={x:Null}を設定しようとしていますまあ、どちらも問題を解決しませんでした。私はTextBlockを対象としたスタイルがAppBarButtonのアイコンをクリップさせる理由を理解していません。私はTextBlocksが実際に必要とするスタイルのセッターをコメントすることはできません。誰かがそのセッターを削除することを含まないソリューションを持っているなら、私はとても感謝しています。

+0

フォントのアイコンはありますか? –

+0

@ChrisW。私のアイコンは組み込みのアイコンですxamlは –

答えて

1

アイコンのは、実際にはglyph'sのSegoe MDL2資産フォントを使用して、実行時にのTextBlockとしてレンダリングSymbolIcon classからなので、それで理由が、あります。したがって、TargetTypeからの継承。

このようなインスタンスでは、継承を簡単にシャットアウトすることができます。

<CommandBar Background="SlateGray"> 
    <CommandBar.Resources> 
     <Style TargetType="TextBlock"> 
     <Setter Property="Margin" Value="0"/> 
     </Style> 
    </CommandBar.Resources> 
      <AppBarButton Label="UseGPS" 
          Icon="Target"/> 
      <AppBarButton Label="Reset" 
          Icon="Clear"/> 
      <AppBarButton Label="Save to File" 
          Icon="Save" /> 
      <AppBarSeparator /> 
      <AppBarButton Label="Copy Longitude" 
          Icon="Copy"/> 
      <AppBarButton Label="Copy Latitude" 
          Icon="Copy" /> 
</CommandBar> 

これはうまくいきます。

+1

を提供しています。あなたの修正は完璧に機能し、なぜそれが起こったのか説明しました。 –

+0

@GordonAllocmanちょっと前のあなたの答えの中から何かを学んだので、それはちょうど相反的です。 :) –

関連する問題