wpf中的椭圆按钮

时间:2011-12-17 20:26:41

标签: c# wpf templates xaml styles

我可以创建椭圆按钮而不覆盖所有模板吗?

我有一个TargetType =按钮的模板和样式,我希望我的椭圆按钮获得这些模板。

提前致谢

1 个答案:

答案 0 :(得分:2)

嗯,这很有效,虽然它不是最灵活的解决方案:

<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>

基本上你只是告诉按钮控件只显示OpacityMask中与椭圆重叠的部分,在这种情况下是一个可视化画笔。对于快速而肮脏的解决方案,这将有效,尽管我认为最好的选择是简单地从here (msdn)复制默认控件模板并稍微调整它以适应您的使用。把它放在一个资源文件中,并保持它很好地分开。