Cam*_*ood 1 xamarin xamarin.forms
有没有一种方法可以在Xamarin.Forms中缩小导航栏上两个图标之间的间距?
请参见下图以解决问题:
此距离适合2个图标,但是使用3个图标时,它会占据导航栏的一半-可以以任何方式减少它吗?
提前致谢。
小智 5
您可以通过创建NavigationRenderer或PageRenderer两种方式来实现。您必须重新创建UIButton来替换每个工具栏项,并从Xamarin.Forms项中获取委托的图像。将CGREct设置为UIButton时,可以在此处调整height和width属性。
这是我使用PageRenderer的实现。
[assembly: Xamarin.Forms.ExportRenderer(typeof(Xamarin.Forms.ContentPage), typeof(ContentPageRenderer))]
public class ContentPageRenderer : PageRenderer
{
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
}
public override void ViewWillAppear(bool animated)
{
base.ViewWillAppear(animated);
var navigationItem = this.NavigationController.TopViewController.NavigationItem;
foreach (var rightItem in navigationItem.RightBarButtonItems)
{
var button = new UIButton(new CGRect(0, 0, 50, 50));
button.SetImage(rightItem.Image, UIControlState.Normal);
FieldInfo fi = rightItem.GetType().GetField("clicked", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public | BindingFlags.FlattenHierarchy);
Delegate del = (Delegate)fi.GetValue(rightItem);
button.TouchUpInside += (EventHandler)del;
rightItem.CustomView = button;
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意:如果您动态更改Xamarin.Forms页面中的工具栏项目,它将覆盖渲染更改。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
3848 次 |
| 最近记录: |