Поддерживается ли тип float в uwp xaml? - PullRequest
1 голос
/ 17 октября 2019

Я конвертирую C # WPF-компонент в UWP, и он содержит классы со свойствами типа с плавающей точкой.

При попытке установить значение в xaml, редактор xaml Visual Studio жалуется: «Невозможно привести объект типа« Система ».Double 'для ввода' System.Single '. При запуске: невозможно преобразовать в Windows.Foundation.Single.

Удваивается, работает нормально.

UWP ScrollViewer имеет, например, свойство MinZoomFactor, котороеfloat, и он не создает проблем.

Также UIElement имеет свойство Rotation, которое является float.

Так что можно предположить, что float должен быть возможен, но как, если вообще?

Прочитайте некоторую документацию, которая указывает, что float не поддерживается, что немного странно для ScrollViewer и UIElement.

https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/xaml-cust-ctrl

Это из тестового проекта, как определяется свойство float.

public static DependencyProperty ValueProperty =
    DependencyProperty.Register(
        "Value",
        typeof(float),
        typeof(FloatContainer),
        new PropertyMetadata(0.0f, new PropertyChangedCallback(ValueChanged)));

public float Value
{
    get { return (float)GetValue(ValueProperty); }
    set { SetValue(ValueProperty, value); }
}

1 Ответ

0 голосов
/ 24 октября 2019

Поддерживается ли тип с плавающей точкой в ​​uwp xaml?

Теперь исходный код Scrollviewer доступен в GitHub . Похоже, что ScrollViewer имеет уникальный механизм при обработке типов float и dobule для своих свойств.

Как уже упоминалось в вашем случае .

Если вы хотите DP с типом с плавающей запятой, то сделайте его удвоенным (Double в MIDL 3.0). Объявление и реализация DP типа float (Single в MIDL), а затем установка значения для этого DP в разметке XAML приводит к ошибке Failed для создания 'Windows.Foundation.Single' из текста ''.

Мы по-прежнему предлагаем использовать свойство Double dependency.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...