我可以在不覆盖所有模板的情况下创建椭圆按钮吗?
我有一个模板和样式的TargetType=按钮,我想我的椭圆按钮得到这些模板。
Thanks in advance
虽然这不是最灵活的解决方案,但这是可行的:
<Button>
<Button.OpacityMask>
<VisualBrush>
<VisualBrush.Visual>
<Grid Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource FindAncestor, AncestorType=Button, AncestorLevel=1}}" Height="{Binding Path=ActualHeight, RelativeSource={RelativeSource FindAncestor, AncestorType=Button, AncestorLevel=1}}">
<Ellipse Fill="White" />
</Grid>
</VisualBrush.Visual>
</VisualBrush>
</Button.OpacityMask>
</Button>
基本上你只是告诉按钮控件只显示与不透明度掩模中椭圆重叠的部分,在这种情况下是一个视觉刷。对于一个快速和肮脏的解决方案,这将工作,虽然我认为最好的选择是简单地复制默认的控制模板从这里(msdn),并稍微调整它以适应您的使用。把它放到一个资源文件中,像这样分开。