你必須添加額外的觸發器(如IsPressed),但是這應該給你一個不錯的主意:
<Button Height="30" Width="30">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Path Name="HalfEllipse" Stroke="Black" StrokeThickness="1" Fill="Blue">
<Path.Data>
<PathGeometry>
<PathFigure IsFilled="True" StartPoint="0,0">
<PolyBezierSegment Points="5,30 25,30 30,0" />
</PathFigure>
</PathGeometry>
</Path.Data>
</Path>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="HalfEllipse" Property="Fill">
<Setter.Value>
<SolidColorBrush Color="Green"/>
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
見此頁面更多信息:http://www.codeproject.com/KB/WPF/glassbuttons.aspx
整個橢圓的大小發生變化。假設某人放置了一行代碼,如myEllipse.xRadius = 40;每個按鈕的寬度基本上都在按鈕的中心大部分爲40。如果類似的東西可以使用純XAML,那麼這將起作用。 – Nick 2009-01-29 16:14:05
是的!這將工作。 XAML非常適合這種佈局。你可以很容易地做到這一點,只需公開一個Radius屬性,然後在該集合中,將radius * 2應用到基本控件寬度,並且如果正確設置了該控件,控件將自動調整大小! :) – 2009-01-29 16:17:49