UWP XAML устанавливает побитовое (флаговое) значение перечисления

Я ищу способ установить побитовые (флаг) значения перечисления в UWP XAML. Подход WPF (через запятую, "значение1, значение2, значение3"), похоже, не работает.

Любые указатели очень ценятся!

редактировать 1

Кажется, синтаксис, разделенный запятыми, является правильным. Проблема, с которой я столкнулся, имеет отношение к конкретному перечислению. Я пытаюсь выставить CoreInputDeviceTypes в классе InkCanvas со следующим свойством:

        public CoreInputDeviceTypes InputDeviceTypes
    {
        get { return (CoreInputDeviceTypes)GetValue(InputDeviceTypesProperty); }
        set { SetValue(InputDeviceTypesProperty, value); }
    }

    // Using a DependencyProperty as the backing store for InputDeviceTypes.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty InputDeviceTypesProperty =
        DependencyProperty.Register("InputDeviceTypes", typeof(CoreInputDeviceTypes), typeof(CustomInkCanvas), new PropertyMetadata(CoreInputDeviceTypes.Touch, new PropertyChangedCallback(OnInputDeviceChanged)));

    private static void OnInputDeviceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        (d as CustomInkCanvas).InkPresenter.InputDeviceTypes = (CoreInputDeviceTypes)e.NewValue;
    }

С XAML стороны вещей:

<local:CustomInkCanvas Width="2000" Height="2000" x:Name="inkCanvas" InputDeviceTypes="Mouse,Pen">
        </local:CustomInkCanvas>

Это терпит неудачу с следующим исключением:

Failed to assign to property 'App5.CustomInkCanvas.InputDeviceTypes'. [Line: 14 Position: 101]'

1 ответ

Решение

Просто делать

<Rectangle ManipulationMode="TranslateX,TranslateY" />

Он должен работать.


Обновить

CoreInputDeviceTypes имеет это : unit что мешает связыванию работать.

[Flags]
public enum CoreInputDeviceTypes : uint
{
    //
    // Summary:
    //     No input.
    None = 0,
    //
    // Summary:
    //     Expose touch input events.
    Touch = 1,
    //
    // Summary:
    //     Expose pen input events.
    Pen = 2,
    //
    // Summary:
    //     Expose mouse input events.
    Mouse = 4
}

Простой обходной путь - создать свой собственный enum без него и сделать сопоставление в свойстве измененного обратного вызова.

Другие вопросы по тегам