gpt4 book ai didi

c# - XAML 中带有参数的自定义 UserControl(按钮)

转载 作者:太空宇宙 更新时间:2023-11-03 20:20:12 26 4
gpt4 key购买 nike

我想创建一个 UserControl,我可以将其重复用于我的应用程序中的各种按钮。有没有办法通过 XAML 将参数传递给 UserControl?我的应用程序中的大多数按钮将由两个矩形(一个位于另一个)组成,具有一些用户指定的颜色。它也可能有一个图像。我希望它表现得像这样:

<Controls:MyCustomButton MyVarColor1="<hard coded color here>" MyVarIconUrl="<null if no icon or otherwise some URI>" MyVarIconX="<x coordinate of icon within button>" etc etc>

然后在按钮内,我希望能够在 XAML 内使用这些值(将 IconUrl 分配给图标的源,等等。

我只是在想这个错误的方式还是有办法做到这一点?我的目的是减少所有按钮的 XAML 代码。

谢谢!

最佳答案

是的,您可以在 xaml 中访问 Control 中的任何属性,但是如果您想要 DataBind、Animate 等,您的 UserControl 中的属性必须是 依赖属性

例子:

public class MyCustomButton : UserControl
{
public MyCustomButton()
{
}

public Brush MyVarColor1
{
get { return (Brush)GetValue(MyVarColor1Property); }
set { SetValue(MyVarColor1Property, value); }
}

// Using a DependencyProperty as the backing store for MyVarColor1. This enables animation, styling, binding, etc...
public static readonly DependencyProperty MyVarColor1Property =
DependencyProperty.Register("MyVarColor1", typeof(Brush), typeof(MyCustomButton), new UIPropertyMetadata(null));



public double MyVarIconX
{
get { return (double)GetValue(MyVarIconXProperty); }
set { SetValue(MyVarIconXProperty, value); }
}

// Using a DependencyProperty as the backing store for MyVarIconX. This enables animation, styling, binding, etc...
public static readonly DependencyProperty MyVarIconXProperty =
DependencyProperty.Register("MyVarIconX", typeof(double), typeof(MyCustomButton), new UIPropertyMetadata(0));



public Uri MyVarIconUrl
{
get { return (Uri)GetValue(MyVarIconUrlProperty); }
set { SetValue(MyVarIconUrlProperty, value); }
}

// Using a DependencyProperty as the backing store for MyVarIconUrl. This enables animation, styling, binding, etc...
public static readonly DependencyProperty MyVarIconUrlProperty =
DependencyProperty.Register("MyVarIconUrl", typeof(Uri), typeof(MyCustomButton), new UIPropertyMetadata(null));

}

xaml:

<Controls:MyCustomButton MyVarColor1="AliceBlue" MyVarIconUrl="myImageUrl" MyVarIconX="60" />

关于c# - XAML 中带有参数的自定义 UserControl(按钮),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14061151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com