【发布时间】:2020-09-29 11:30:37
【问题描述】:
请帮我制作 VerticalTextAlignment 和 HorisontalTextAlignment 我使用这个网站,但我不知道如何添加 VerticalTextAlignment
https://forums.xamarin.com/discussion/58774/button-horizontal-text-alignment
这个例子没有用
How to change Text Alignment of button on Android (Xamarin Forms)?
我使用 1 个站点,它可以工作,请帮助将 VerticalTextAlignment 添加到第一个代码
public class ExtendedButton : Xamarin.Forms.Button
{
public static BindableProperty HorizontalTextAlignmentProperty = BindableProperty.Create<ExtendedButton, Xamarin.Forms.TextAlignment>(x => x.HorizontalTextAlignment, Xamarin.Forms.TextAlignment.Center);
public Xamarin.Forms.TextAlignment HorizontalTextAlignment
{
get
{
return (Xamarin.Forms.TextAlignment)GetValue(HorizontalTextAlignmentProperty);
}
set
{
SetValue(HorizontalTextAlignmentProperty, value);
}
}
}
安卓
[assembly:ExportRenderer(typeof(ExtendedButton), typeof(ExtendedButtonRenderer)]
namespace SomeNamespace.Droid
{
public class ExtendedButtonRenderer : Xamarin.Forms.Platform.Android.AppCompat.ButtonRenderer
{
public new ExtendedButton Element
{
get
{
return (ExtendedButton)base.Element;
}
}
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.Button> e)
{
base.OnElementChanged(e);
if (e.NewElement == null)
{
return;
}
SetTextAlignment();
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName == ExtendedButton.HorizontalTextAlignmentProperty.PropertyName)
{
SetTextAlignment();
}
}
public void SetTextAlignment()
{
Control.Gravity = Element.HorizontalTextAlignment.ToHorizontalGravityFlags();
}
}
public static class AlignmentHelper
{
public static GravityFlags ToHorizontalGravityFlags(this Xamarin.Forms.TextAlignment alignment)
{
if (alignment == Xamarin.Forms.TextAlignment.Center)
return GravityFlags.AxisSpecified;
return alignment == Xamarin.Forms.TextAlignment.End ? GravityFlags.Right : GravityFlags.Left;
}
}
}
【问题讨论】:
-
我添加了我的问题
-
如果您不向我们展示您的代码,我们将无法帮助您
-
我添加了有问题的代码
标签: c# xaml xamarin xamarin.forms xamarin.android