我想问一下是否有办法让Xamarin.Forms.Label告诉它应该使用" AdjustsFontSizeToFitWidth"当应用程序在iOS上运行时。
这是可能的,还是Xamarin.Forms.Label与UILabel完全不同的东西?
我在想Xamarin.Form.Label"倒退了#34;在UILabel为iOS构建时,情况就是这样吗?
编辑:
根据我如何理解我试过的评论,但它不会起作用:
switch (Device.RuntimePlatform)
{
case Device.iOS:
{
_label1.AdjustsFontSizeToFitWidth = true;
break;
}
default:
{
break;
}
}
我得到的错误是" AdjustsFontSizeToFitWidth"不属于Xamarin.Forms.Label。
的财产编辑2: 根据另一条评论,我尝试了以下内容:
public class clsGridCell : ContentView
{
private Xamarin.Forms.Label _label1;
//problem is that it's not longer a Xamarin.Forms.Label, but UILabel on iOS, but I can't declare it as "var" when I want to reuse it for binding.
//declaring it as "object" would break the bindings.
public clsGridCell()
{
switch (Device.RuntimePlatform)
{
case Device.iOS:
{
_label1 = new UILabel
_label1.AdjustsFontSizeToFitWidth = true;
break;
}
default:
{
_label1 = new Xamarin.Forms.Label()
{
HorizontalTextAlignment = TextAlignment.Center,
VerticalTextAlignment = TextAlignment.Center,
};
break;
}
}
this._label1.SetBinding(Label.BackgroundColorProperty, new Binding() { Path = "BackgroundColor", Source = this });
this._label1.SetBinding(Label.TextProperty, new Binding() { Path = "Text", Source = this });
this._label1.SetBinding(Label.TextColorProperty, new Binding() { Path = "TextColor", Source = this });
错误符合" _label1.AdjustsFontSizeToFitWidth = true;"。 抛出的错误是"标签不包含" AdjustsFontSizeToFitWidth""。
那是因为我宣称它是"标签"。 我这样做是因为" var"在这种情况下是不可能的。
在不破坏绑定的情况下声明它的替代方法是什么? 将其声明为"对象"会破坏绑定。
谢谢!