В старом wp 8.1 он автоматически выделял выбранный/щелкнутый элемент во всплывающем окне. Но в случае с MenuFlyout это не происходит в новом UWP. Как достичь этого в этом сценарии.Как выделить MenuFlyoutItem, который щелкнут/выбран в UWP?
0
A
ответ
1
Вам необходимо отредактировать стиль MenuFlyoutItem и MenuFlyoutPresenter. Эта ссылка поможет вам в этом. [Изменить MenuFlyoutItem] [1]. Обновление Вот стиль для MenuFlyoutItem Для вашего удобства вы можете отредактировать нажатое состояние. Вы можете проверить состояние проверки.
<Style TargetType="MenuFlyoutItem">
<Setter Property="Background" Value="Transparent" />
<Setter Property="Foreground" Value="{ThemeResource SystemControlForegroundBaseHighBrush}" />
<Setter Property="Padding" Value="{ThemeResource MenuFlyoutItemThemePadding}" />
<Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}" />
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="UseSystemFocusVisuals" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="MenuFlyoutItem">
<Grid x:Name="LayoutRoot"
Padding="{TemplateBinding Padding}"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
<Storyboard>
<PointerUpThemeAnimation Storyboard.TargetName="TextBlock" />
</Storyboard>
</VisualState>
<VisualState x:Name="PointerOver">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot"
Storyboard.TargetProperty="Background">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListLowBrush}" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="TextBlock"
Storyboard.TargetProperty="Foreground">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}" />
</ObjectAnimationUsingKeyFrames>
<PointerUpThemeAnimation Storyboard.TargetName="TextBlock" />
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot"
Storyboard.TargetProperty="Background">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListMediumBrush}" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="TextBlock"
Storyboard.TargetProperty="Foreground">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}" />
</ObjectAnimationUsingKeyFrames>
<PointerDownThemeAnimation Storyboard.TargetName="TextBlock" />
</Storyboard>
</VisualState>
<VisualState x:Name="Disabled">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="TextBlock"
Storyboard.TargetProperty="Foreground">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="CheckPlaceholderStates">
<VisualState x:Name="NoPlaceholder" />
<VisualState x:Name="CheckPlaceholder">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="TextBlock"
Storyboard.TargetProperty="Margin">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource MenuFlyoutItemPlaceholderThemeThickness}" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="PaddingSizeStates">
<VisualState x:Name="DefaultPadding" />
<VisualState x:Name="NarrowPadding">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot"
Storyboard.TargetProperty="Padding">
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource MenuFlyoutItemThemePaddingNarrow}" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<TextBlock
x:Name="TextBlock"
Text="{TemplateBinding Text}"
TextTrimming="Clip"
Foreground="{TemplateBinding Foreground}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
[1]: http://stackoverflow.com/questions/35763131/visualstatemanager-on-flyout-not-highlighting-entire-area
Смежные вопросы
- 1. Как использовать DataTransferManager с MenuFlyoutItem
- 2. Как добавить значок в MenuFlyout в UWP?
- 3. MenuFlyoutItem Получить Родитель
- 4. Меню RightClick в ListView UWP
- 5. Bind Observable Collection to MenuFlyoutSubItem в UWP
- 6. Связывание нескольких полей с MenuFlyoutItem
- 7. Как использовать ContextFlyout в StackPanel в UWP?
- 8. XAML MenuFlyoutItem Command Binding в ListView
- 9. Выделить участок изображения, который нажимается
- 10. выделить текст, который соответствует началу
- 11. UWP ListView Пункт контекстного меню
- 12. XAML - MenuFlyoutItem привязанных к ListView не работает в WP8.1
- 13. Открытие UWP в UWP приложения
- 14. Окно меню приложения UWP Windows 10 внутри элемента меню
- 15. Кнопка меню выпадающего горизонтального выравнивания в UWP
- 16. Меню вылета в UWP с MVVM
- 17. Вывод позиции UWP при указателе мыши
- 18. Как выделить один массив, который не подходит в ОЗУ
- 19. Как выделить столбец, который я выбираю через флажок в JavaFX
- 20. Найти радиус фонового круга, который можно выделить
- 21. Временно меняйте цвет, который можно выделить
- 22. Приложение UWP Сбой при нажатии кнопки, содержащей всплывающее окно в сборке 10240
- 23. Как рассчитать высоту FontFamily в UWP?
- 24. Как окружить/выделить/выделить определенные области изображения?
- 25. Как выделить?
- 26. Как получить самый большой доступный фрагмент памяти, который можно выделить?
- 27. Столбец в UWP DataTemplate не растягивается
- 28. Как выделить этот счетчик, который подсчитывает для каждого поля?
- 29. Как правильно выделить struct *, который имеет поле char *
- 30. Как выделить текст, который имеет список с изображением пули?
Я не уверен, поскольку это, кажется, выделяет MenuFlyoutItem над мышью, даже если они хотят увеличить этот размер выделения. Но мне нужно что-то там, где при щелчке элемента и в следующий раз, когда я вижу, что MenuFlyout ранее выбранный/щелкнутый MenuFlyoutItem подсвечивается независимо от того, выполняю ли операцию мыши или нет. – AbsoluteSith
Вы редактировали стиль MenuFlyoutItem? – Archana
Да, но это в основном для мыши над событием. Похоже, всякий раз, когда выбирается MenuFlyoutItem, затем вручную отредактируйте его стиль на C#, чтобы показать его выделение? Это может сработать, позвольте мне попробовать. – AbsoluteSith