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 без него и сделать сопоставление в свойстве измененного обратного вызова.