2016-09-15 78 views
0

View of the buttons文本塊的內容不居中

嗨sof,最近我做了一個資源字典。我將按鈕放到網格的高度,並在按鈕內容展示器部分的文本塊的資源字典中,我將水平和垂直內容對齊更改爲如下所示的中心;

<Style x:Key="RButtonStyle" TargetType="Button"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="Button"> 
       <TextBlock x:Name="b" 
         HorizontalAlignment="Center" 
         VerticalAlignment="Center"> 
        <ContentPresenter 
         HorizontalAlignment="Center" 
         VerticalAlignment="Center" /> 
       ... 

是的,它的工作。但並不完美。看到上面的鏈接,看看我在說什麼。我在哪裏可以得到關於它的一些詳細信息,或者你能幫我解決這個問題嗎?

我沒有改變任何文本塊的內容部分,除了這個。如果你想要我的資源字典的完整代碼,我可以發佈給你。

+0

對不起,但contentpresenter中的垂直或水平對齊已經等於(我猜)。 contentpresenter內部沒有垂直/水平內容對齊方式。我檢查了網站,所以我不會重複。 –

+0

對不起,沒有提及。它在設置者的屬性值部分。所以在TextBlock中不存在Horizo​​ntal/VerticalContentAlignment。 –

+0

http://puu.sh/rcdVE/89f346f002.png 我想這個快照應該解釋一切 –

回答

0

所以,既然您直接使用TextBlock,你只需要設置TextAlignment屬性設置爲「中心」,讓您居中文本作爲HorizontalContentAlignment屬性不存在於TextBlock

所以;

<TextBlock x:Name="b" 
      HorizontalAlignment="Center" 
      VerticalAlignment="Center" 
      TextAlignment="Center"/> 

但是,如果我錯了,你需要一個父面板爲您的控制模板,如果ButtonContent充滿因爲有一個以上的孩子在對象樹應該當前錯誤。所以你也想添加一些東西來容納像簡單的GridStackPanel等孩子。

喜歡;

<ControlTemplate TargetType="Button"> 
    <Grid> 
     <TextBlock x:Name="b" 
       HorizontalAlignment="Center" 
       VerticalAlignment="Center" 
       TextAlignment="Center"/> 
     <ContentPresenter 
       HorizontalAlignment="Center" 
       VerticalAlignment="Center"/> 
    </Grid> 
</ControlTemplate> 

如果你想使用的ButtonHorizontalContentAlignment屬性,你需要把它列入你的模板的某處。

像例如;

<TextBlock x:Name="b" 
      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
      VerticalAlignment="Center"/> 

希望這會有所幫助,歡呼!