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();
}