我假设您的意思是让用户将渐变停止颜色设置为他们自己的 XAML 的一部分?如果是这样,您可以使用 aDependencyProperty
并将其绑定GradientStop.Color
到它。
在 UserControl.cs 中:
public CoolControl()
{
InitalizeComponent();
SetValue(ColorProperty, Colors.Red); // or any default color
}
public static DependencyProperty ColorProperty = DependencyProperty.Register("BackgroundColor", typeof(Color), typeof(CoolControl)); // replace CoolControl with the name of your UserControl
public Color BackgroundColor
{
get
{
return (Color)GetValue(ColorProperty);
}
set
{
SetValue(ColorProperty, value);
}
}
在 UserControl.xaml 中:
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="{Binding BackgroundColor, RelativeSource={RelativeSource AncestorType={x:Type my:CoolControl}}}" Offset="1" /> <!-- replace my:CoolControl with your namespace declaration and UserControl name -->
<GradientStop Color="Black" Offset="0" />
</LinearGradientBrush>
使用控件:
<Grid>
<my:CoolControl BackgroundColor="Blue" />
</Grid>