Кнопка эллипса в wpf - PullRequest
       13

Кнопка эллипса в wpf

2 голосов
/ 18 декабря 2011

Можно ли создать кнопку эллипса без переопределения всего шаблона?

У меня есть шаблон и стиль для кнопки TargetType =, и я хочу, чтобы моя кнопка эллипса получила эти шаблоны.

1 Ответ

2 голосов
/ 18 декабря 2011

Ну, это работает, хотя это не самое гибкое решение:

<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, который является визуальнымкисть в этом случае.Для быстрого и грязного решения это будет работать, хотя я думаю, что лучшим вариантом будет просто скопировать шаблон элемента управления по умолчанию из здесь (msdn) и слегка адаптировать его к вашему использованию.Поместите его в файл ресурсов и держите его так хорошо отделенным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...