Xamarin.forms 习惯用法上的设备差异Xaml设置
我需要使用OnIdiom,我正在设置按钮的宽度和高度,但如果我在平板电脑和手机上显示按钮,则按钮是相同的。你能告诉我我做错了什么吗Xamarin.forms 习惯用法上的设备差异Xaml设置,xamarin.forms,Xamarin.forms,我需要使用OnIdiom,我正在设置按钮的宽度和高度,但如果我在平板电脑和手机上显示按钮,则按钮是相同的。你能告诉我我做错了什么吗 <Button x:Name="ScanButton" Padding="0" VerticalOptions="End" HorizontalOptions="CenterAndExpand"> <Button.S
<Button
x:Name="ScanButton" Padding="0"
VerticalOptions="End" HorizontalOptions="CenterAndExpand">
<Button.Style>
<OnIdiom x:TypeArguments="Style" Tablet="{StaticResource PrimaryButtonStyleTablet}" Phone="{StaticResource PrimaryButtonStylePhone}"></OnIdiom>
</Button.Style>
</Button>
<Style x:Key="PrimaryButtonStylePhone" TargetType="Button">
<Setter Property="BackgroundColor" Value="{DynamicResource ButtonColor}" />
<Setter Property="TextColor" Value="{DynamicResource PrimaryTintColor}" />
<Setter Property="FontSize" Value="20" />
<Setter Property="CornerRadius" Value="25"/>
<Setter Property="WidthRequest" Value="200"/>
<Setter Property="HeightRequest" Value="33"/>
</Style>
<Style x:Key="PrimaryButtonStyleTablet" TargetType="Button">
<Setter Property="BackgroundColor" Value="{DynamicResource ButtonColor}" />
<Setter Property="TextColor" Value="{DynamicResource PrimaryTintColor}" />
<Setter Property="FontSize" Value="20" />
<Setter Property="CornerRadius" Value="25"/>
<Setter Property="WidthRequest" Value="390"/>
<Setter Property="HeightRequest" Value="33"/>
</Style>
您需要在Setter.Value中使用
OnIdiom
例如,修改样式的代码如下:
<Style x:Key="PrimaryButtonStyle"
TargetType="Button">
<Setter Property="BackgroundColor">
<Setter.Value>
<OnIdiom Phone="{DynamicResource phoneDynamicResource}"
Tablet="{DynamicResource tableDynamicResource}"/>
</Setter.Value>
</Setter>
<Setter Property="TextColor">
<Setter.Value>
<OnIdiom Phone="Blue" Tablet="Green"/>
</Setter.Value>
</Setter>
<Setter Property="FontSize">
<Setter.Value>
<OnIdiom Phone="20" Tablet="20"/>
</Setter.Value>
</Setter>
<Setter Property="CornerRadius">
<Setter.Value>
<OnIdiom Phone="25" Tablet="25" />
</Setter.Value>
</Setter>
<Setter Property="WidthRequest">
<Setter.Value>
<OnIdiom Phone="200" Tablet="390" />
</Setter.Value>
</Setter>
<Setter Property="HeightRequest">
<Setter.Value>
<OnIdiom Phone="33" Tablet="33" />
</Setter.Value>
</Setter>
</Style>
@Rntakokoi,但它在我的本地网站上运行。也许项目中有什么地方出了问题。您可以在这里共享一个没有实际数据的示例项目链接,我将对此进行检查。我在哪里设置这个?@Rntakokoi这里是DynamicResource
与您的共享代码相同。如果需要使用,您可以参考这里:但是,不理解为什么这里需要使用这个。它现在可以工作了,我想它没有保存。我使用的是VS Mac,有时有点不可靠。对不起confusion@Rntakokoi太好了!很高兴这会有帮助。
<Button x:Name="ScanButton"
Padding="0"
VerticalOptions="End"
Text="Button"
Style="{StaticResource PrimaryButtonStyle}"
HorizontalOptions="CenterAndExpand">
</Button>