我正在尝试开发xamarin表单应用。我需要使用自定义的UI元素。例如,我不需要使用Button,而是需要使用MyAppButton。
如何实现此功能?我认为通过继承Button实现一个类MyAppButton是一个解决方案。这是正确的方法吗?是否有可用的示例实现?
由于
答案 0 :(得分:0)
@ user3165999回复: '我需要自定义单选按钮图标。任何人都可以帮我这个吗?'
您需要做的第一件事是创建Element的Custom Renderer。 之后,您需要在* Renderer.cs上编写自定义样式,修改Control的字段(即您的元素)。
例如在Android中,您可以执行以下操作:
public class RadioButtonRenderer: ViewRenderer<CustomRadioButton, RadioButton>
{
protected override void OnLayout(bool changed, int l, int t, int r, int b)
{
base.OnLayout(changed, l, t, r, b);
if (Control != null)
{
var radioButton = Control;
// Resource.Drawable.backgroundradiobutton is an XML file that you have to create and insert in Resources -> Drawable -> backgroundradiobutton.xml
Drawable drawable = ResourcesCompat.GetDrawable(Resources, Resource.Drawable.backgroundradiobutton, Resources.NewTheme());
radioButton.SetButtonDrawable(drawable);
}
}
}
backgroundradiobutton.xml
在这种情况下,这必须是包含单选按钮图形的文件。 请注意,单选按钮可以使用“State List Drawables”类根据RadioButton的状态更改图形。 More Info Here
Android中对图形元素(例如按钮,滑块等)的大多数自定义都是通过XML文件进行的。 如果你不了解这种环境,你应该看看。
也许this会有所帮助。
在iOS上,您可以执行以下操作:
class RadioButtonRenderer : ViewRenderer<CustomRadioButton, RadioButtonView>
{
protected override void OnElementChanged(ElementChangedEventArgs<RadioButton> e)
{
base.OnElementChanged(e);
var radioButton = Control;
radioButton.SetBackgroundImage(UIImage.FromFile("pathofimageinreourcesfolder.png"), UIControlState.Application);
// You need to set background image for each state.
}
}
正如您所见,iOS渲染器接受图像作为图形资源。
事实上,(我认为)iOS定制相对简单
我希望我很清楚,对不起我的英语 Byee。