Смена радиокнопки WPF (сама окружность) - PullRequest
0 голосов
/ 12 февраля 2019

Я хотел бы иметь группу переключателей, для которых кружки для невыбранных и выбранных режимов меняются на нарисованные мной значки кружков.

Можно ли это сделать в WPF?Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Создайте стиль и переопределите шаблон по умолчанию для RadioButtons.Как то так:

<Window.Resources>
    <Style TargetType="RadioButton">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type RadioButton}">
                    <BulletDecorator Background="Transparent">
                        <BulletDecorator.Bullet>
                            <Grid Width="13" Height="13">
                                <Ellipse x:Name="Border" StrokeThickness="2">
                                    <Ellipse.Stroke>
                                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                            <GradientStop Color="Green" Offset="0" />
                                            <GradientStop Color="Pink" Offset="1" />
                                        </LinearGradientBrush>
                                    </Ellipse.Stroke>
                                    <Ellipse.Fill>
                                        <LinearGradientBrush StartPoint="0,0"
                                   EndPoint="0,1">
                                            <LinearGradientBrush.GradientStops>
                                                <GradientStopCollection>
                                                    <GradientStop Color="Orange" />
                                                    <GradientStop Color="Red"
                                  Offset="1.0" />
                                                </GradientStopCollection>
                                            </LinearGradientBrush.GradientStops>
                                        </LinearGradientBrush>
                                    </Ellipse.Fill>
                                </Ellipse>
                                <Ellipse x:Name="CheckMark"
                   Margin="4"
                   Visibility="Collapsed">
                                    <Ellipse.Fill>
                                        <SolidColorBrush Color="Purple" />
                                    </Ellipse.Fill>
                                </Ellipse>
                            </Grid>
                        </BulletDecorator.Bullet>
                      <ContentPresenter Margin="4,0,0,0"
                        VerticalAlignment="Center"
                        HorizontalAlignment="Left"
                        RecognizesAccessKey="True" />
                    </BulletDecorator>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Window.Resources>
0 голосов
/ 12 февраля 2019

Да, конечно, это возможно.Вы можете переопределить значение по умолчанию ControlTemplate и создать стиль для своей собственной кнопки. Здесь является примером, вы также можете использовать Style Snooper, чтобы увидеть встроенный стиль переключателя WPF (большой кусок кода XAML :))

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