【发布时间】:2020-01-23 14:16:22
【问题描述】:
我在 App.xaml 中定义了一个试图从视图模型类中读取的资源。
尝试过的不同版本
<OnPlatform x:Key="HandpickedPhone"
x:TypeArguments="x:Double"
Android="250"
iOS="240" />
<OnPlatform x:Key="HandpickedTablet"
x:TypeArguments="x:Double"
Android="375"
iOS="360" />
<OnIdiom x:Key="HandpickedHeight"
x:TypeArguments="x:Double"
Phone="{StaticResource HandpickedPhone}"
Tablet="{StaticResource HandpickedTablet}" />
<OnPlatform x:Key="HorizontalListHeight"
x:TypeArguments="x:Double">
<OnPlatform.Android>
<OnIdiom x:TypeArguments="x:Double"
Phone="250"
Tablet="375" />
</OnPlatform.Android>
<OnPlatform.iOS>
<OnIdiom x:TypeArguments="x:Double"
Phone="240"
Tablet="260" />
</OnPlatform.iOS>
</OnPlatform>
我正在尝试阅读它并动态设置高度请求,
double height = (double)App.Current.Resources["HorizontalListHeight"];
horizontalStack.HeightRequest = height;
但是转换为 double 会引发 IllegalCastException,同时,我能够从 VS 中的观察者转换为正确的值。
【问题讨论】:
-
试试 Double.Parse()
-
直接在你的xaml代码中使用
-
@HamidShaikh 不能在 xaml 中动态使用我必须设置它,这取决于场景
-
在 Xaml 中,您也可以使用触发器动态执行此操作....
......
标签: xamarin xamarin.forms resourcedictionary idioms