maui icon indicating copy to clipboard operation
maui copied to clipboard

OnPlatform control of type x:Double is not accessible as font size

Open Phil9753 opened this issue 1 year ago • 2 comments

Description

I defined an OnPlatform class of type x:Double in my main Styles.xaml which I want to use for defining different font sizes per platform. The problem is when I want to call the resource via the specified x:Key the font size of the label does not change.

Steps to Reproduce

My Styles.xaml file:

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:controls="clr-namespace:ClientApp.Source.Controls"
    xmlns:views="clr-namespace:ClientApp.Source.Views">

    <OnPlatform x:Key="TinyFontSize" x:TypeArguments="x:Double">
        <On Platform="Default" Value="12" />
    </OnPlatform>

In a ContentPage I created following label:

<Label FontSize="{StaticResource TinyFontSize}" Text="Test" WidthRequest="200"/>

but the font size of the label does not change to size 12, only when I replace {StaticResource TinyFontSize} with a numeric value.

When I create following resource in the Styles.xaml file:

<x:Double x:Key="SmallFontSize">13</x:Double>

it would work fine but then I can not change the value depending on the operating system from the main Styles.xaml.

I found an example on Github in the eShop repository: https://github.com/dotnet/eShop/blob/main/src/ClientApp/Views/CheckoutView.xaml.

But even when I checkout this project and run the ClientApp it does not work...

Link to public reproduction project repository

https://github.com/dotnet/eShop/blob/main/src/ClientApp/Views/CheckoutView.xaml.

Version with bug

8.0.21 SR4.1

Is this a regression from previous behavior?

Not sure, did not test other versions

Last version that worked well

Unknown/Other

Affected platforms

iOS, Android, Windows

Affected platform versions

No response

Did you find any workaround?

No response

Relevant log output

No response

Phil9753 avatar May 16 '24 14:05 Phil9753

Hi I'm an AI powered bot that finds similar issues based off the issue title.

Please view the issues below to see if they solve your problem, and if the issue describes your problem please consider closing this one and thumbs upping the other issue to help us prioritize it. Thank you!

Open similar issues:

Closed similar issues:

Note: You can give me feedback by thumbs upping or thumbs downing this comment.

github-actions[bot] avatar May 16 '24 14:05 github-actions[bot]

Can repro this issue at Android/Windows platforms on the latest 17.10 preview 7 (8.0.40, 8.0.21, 8.0.3). https://github.com/dotnet/eShop/tree/main/src/ClientApp

jaosnz-rep avatar May 17 '24 09:05 jaosnz-rep

I want to add something related with this but a bit different. I have this label with this style: <Label Text="My Label" Style="{StaticResource FontSizeH4}" /> If I define the style like bellow it works in WinUI but it will throw exception error in Android: <OnPlatform x:Key="FontSizeH4" x:TypeArguments="x:Double"> <On Platform="iOS" Value="20" /> <On Platform="Android" Value="22" /> <On Platform="WinUI" Value="22" /> <On Platform="Default" Value="22" /> </OnPlatform> The work arround to make it working on both platform is to define the style like this: <Style TargetType="Label" x:Key="StyleLabelH4"> <Setter Property="FontSize" Value="{StaticResource FontSizeH4}" /> </Style> which seems correct... but then should throw exception in WinUI too.

rodolfo-sousa avatar Sep 21 '24 17:09 rodolfo-sousa