Я пытаюсь назначить разные CornerRadius на iOS и Android, как показано ниже:
<Frame
HasShadow = "false"
Padding = "10"
BackgroundColor = "Red">
<Frame.CornerRadius>
<OnPlatform x:TypeArguments = "x:Double">
<On
Platform = "iOS">20</On>
<On
Platform = "Android">30</On>
</OnPlatform>
</Frame.CornerRadius>
<Label
Text = "Hello World" />
</Frame>
Но получая
Cannot assign property "CornerRadius": Property does not exists, or is not assignable, or mismatching type between value and property
Я пробовал x:TypeArguments = "Thickness" и x:TypeArguments = "x:Int32". При декомпиляции сборки выясняется, что CornerRadius относится к типу float. Однако в Float нет свойства x namespace, я имею в виду, что x:TypeArguments = "x:Float" не существует.
Есть идеи, что я делаю неправильно или это ошибка?





Ну, я упал, здесь есть синтаксическая ошибка, сделайте что-то вроде этого:
<Frame.CornerRadius>
<OnPlatform x:TypeArguments = "x:Single">
<OnPlatform.Platforms>
<On Platform = "iOS" Value = "20" />
<On Platform = "Android" Value = "30" />
<On Platform = "UWP" Value = "30" />
</OnPlatform.Platforms>
</OnPlatform>
</Frame.CornerRadius>
Попробуйте это, и, если это не сработает, вернитесь.
Это потому, что я предполагал, что вы добавите его в родительский фрейм, а не просто так, без чего-либо
Для других, смотрящих на это ... UWP = x: Int32, задача здесь состоит в том, чтобы поддерживать 2 типа ... сделайте это, определив значение правильного типа и сославшись на него на платформе
Тип CornerRadius - это Single:
<Frame HasShadow = "true" OutlineColor = "Red">
<Frame.CornerRadius>
<OnPlatform x:TypeArguments = "x:Single">
<On Platform = "iOS" Value = "20"/>
<On Platform = "Android" Value = "30"/>
</OnPlatform>
</Frame.CornerRadius>
<Frame.Content>
<Label Text = "Welcome to Xamarin Forms!" VerticalOptions = "Center" HorizontalOptions = "Center" />
</Frame.Content>
</Frame>
@ envyM6, без проблем, рад помогло,
В Xamarin.Forms 4.5+ для свойства x: TypeArguments должно быть установлено значение «Int32».
Спасибо, дружище, но это не так, синтаксис правильный. Однако я тоже попробовал ваше решение. Ошибка была
Type CornerRadius not found