2012-07-24 42 views
0

嗨,我有一個按鈕風格retemplates這樣按鈕的寬度相對於其contentpresenters寬度

<Style x:Name="NoStyleButton" TargetType="Button">  
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate> 
        <ContentPresenter x:Name="ContentPresenterInButton"/> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 

問題的風格是我想要的按鈕的寬度是相同的作爲按鈕內的內容。如果我把一個帶有這種樣式的按鈕放在一個堆棧面板中,按鈕的寬度與堆棧面板的寬度相同,當按鈕內容很少時(Think small TextBlock)會導致問題,用戶可以按下按鈕,即使他們點擊按鈕內的TextBlock。

我想你可以做同樣的事情到

<Setter Property="Width" Value="{Binding ActualWidth, ElementName=ContentPresenterInButton}"/> 

但是,這並不工作。

有什麼想法?

回答

1

的問題是,它是決定你的按鈕的寬度,而不是內容的StackPanel。您可以設置按鈕水平對齊方式,以便它不拉伸以填充可用寬度:

<StackPanel Orientation="Vertical"> 
    <Button HorizontalAlignment="Left">foo</Button> 
    <Button>bar</Button> 
</StackPanel> 

enter image description here

+0

當然要歸功於 – Jea 2012-07-24 09:06:41

0

與嘗試:

<Button HorizontalAlignment="Stretch">Text</Button>