嗨我有一个按钮的样式,重新模仿这样的风格
<Style x:Name="NoStyleButton" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<ContentPresenter x:Name="ContentPresenterInButton"/>
</ControlTemplate>
</Setter.Value>
</Setter>
问题是我希望按钮的宽度与按钮内的内容相同。如果我将一个带有此样式的按钮放在堆叠面板中,按钮宽度与堆叠面板相同,当按钮内部的内容很少时会导致问题(想想小的TextBlock),用户即使按下按钮也可以按下按钮按钮内的TextBlock。
我认为你可以做类似的事情
<Setter Property="Width" Value="{Binding ActualWidth, ElementName=ContentPresenterInButton}"/>
但那不起作用。
有什么想法吗?
答案 0 :(得分:1)
问题是StackPanel指示你的Button宽度,而不是内容。您可以将按钮设置为水平对齐,以便它不会拉伸以填充可用宽度:
<StackPanel Orientation="Vertical">
<Button HorizontalAlignment="Left">foo</Button>
<Button>bar</Button>
</StackPanel>
答案 1 :(得分:0)
尝试:
<Button HorizontalAlignment="Stretch">Text</Button>