0

标准 RadioButton 不支持设置椭圆的颜色。因此,我从这个位置获取了一个单选按钮模板作为自定义单选按钮的基础: 单选按钮样式和模板

<Ellipse.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
    <LinearGradientBrush.GradientStops>
        <GradientStopCollection>
            <GradientStop Color="{DynamicResource ControlLightColor}" />
            <GradientStop Color="{DynamicResource ControlMediumColor}" Offset="1.0" />
        </GradientStopCollection>
    </LinearGradientBrush.GradientStops>
</LinearGradientBrush>

ControlLightColor 和 ControlMediumColor 定义为:

<Color x:Key="ControlLightColor">#ffff9a</Color>
<Color x:Key="ControlMediumColor">#ffff9a</Color>

这给了我们一个黄色的椭圆。

如何在代码隐藏中更改此颜色?

问候,

米歇尔

4

2 回答 2

0

按照以下 步骤创建样式:在后面的代码中创建样式

然后将其分配给您的 element.Style

您还可以通过以下方式访问资源

Resources["mykey"]
于 2012-05-24T09:41:13.890 回答
0

解决方案:

<Ellipse x:Name="Border" StrokeThickness="1" Fill="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}, Path=DataContext.RadioButtonColor}">

        Public ReadOnly Property RadioButtonColor() As SolidColorBrush
        Get
            Dim solidColorBrush As SolidColorBrush

            If MyBusinessLogic Then
                solidColorBrush = _radioButtonNotRequiredBrush
            Else
                solidColorBrush = _radioButtonRequiredBrush
            End If

            Return solidColorBrush
        End Get
    End Property

为 JRB 的想法竖起大拇指。

于 2012-05-24T14:16:50.173 回答