XAML:将FontSize绑定到控件的高度

XAML:将FontSize绑定到控件的高度,xaml,xamarin,xamarin.forms,Xaml,Xamarin,Xamarin.forms,在Xamarin.Form页面中,我试图将标签的FontSize绑定到同一标签的高度 我在WPF中看到过这样的例子: FontSize="{Binding ElementName=CurrentPresenter, Path=Height}" 但我似乎无法在表格中获得任何类似的工作,即: <Label Text="X" FontSize="{Binding ElementName=CurrentPresenter, Path=RequestedHeight}" H

Xamarin.Form
页面中,我试图将标签的
FontSize
绑定到同一标签的高度

我在WPF中看到过这样的例子:

FontSize="{Binding ElementName=CurrentPresenter, Path=Height}"
但我似乎无法在表格中获得任何类似的工作,即:

<Label
    Text="X"
    FontSize="{Binding ElementName=CurrentPresenter, Path=RequestedHeight}"
    HorizontalTextAlignment="Center"
    AbsoluteLayout.LayoutBounds="0.1, 0.5, 0.33, 0.66"
    AbsoluteLayout.LayoutFlags="All" />


(我将使用数据转换器来调整字体大小,以便根据屏幕DPI进行自动调整,但目前,我只是尝试将其绑定到控件的高度,以获得默认系统字体大小以外的内容)

这种方式似乎工作得很好,但不确定运行时布局的性能

仅供参考:这在XAML设计器中不起作用,仅在运行时起作用

<Label
    Text="X"
    x:Name="foo"
    BindingContext="{x:Reference Name=foo}"
    FontSize="{Binding Path=Height}"
    HorizontalTextAlignment="Center"
    AbsoluteLayout.LayoutBounds="0.1, 0.5, 0.33, 0.66"
    AbsoluteLayout.LayoutFlags="All" />

与OP问题并不完全相关,但在谷歌搜索“基于另一个控件的Xaml高度”几乎没有任何结果,因此发布此消息以防对其他人有所帮助

更改较小按钮的大小以匹配较大按钮的大小,如下图所示

在不使用代码隐藏的情况下,有几种方法可以做到这一点,但是如果您试图使用的布局在这里很困难,下面是另一种选择。要更改较小按钮的大小而不更改这些控件的绑定,可以在XAML中指定按钮名称,然后在代码隐藏中执行类似操作:

    public HomeOpenPage ()
    {            
        InitializeComponent ();
        RefreshButton.PropertyChanging += RefreshButton_PropertyChanging;

    }

    private void RefreshButton_PropertyChanging(object sender, PropertyChangingEventArgs e)
    {
        if (RefreshButton.Width != -1)
        {
            var width = RefreshButton.Width;
            CSVButton.WidthRequest = width;
            EndButton.WidthRequest = width;
        }
    }

    protected override void OnDisappearing()
    {
        RefreshButton.PropertyChanging -= RefreshButton_PropertyChanging;
        base.OnDisappearing();  
    }