In der alten WP 8.1 wurde automatisch das ausgewählte/angeklickte Element im Flyout hervorgehoben. Im Fall eines MenuFlyout geschieht dies jedoch nicht in der neuen UWP. Wie man es in diesem Szenario erreicht.Wie wird ein MenuFlyoutItem hervorgehoben, das in UWP angeklickt/ausgewählt wird?
0
A
Antwort
1
Sie müssen den Stil von MenuFlyoutItem und MenuFlyoutPresenter bearbeiten. Dieser Link wird Ihnen zeigen, wie das geht. [Bearbeiten MenuFlyoutItem] [1]. Aktualisieren Hier ist der Stil für MenuFlyoutItem Für Ihren Anwendungsfall können Sie gedrückten Zustand bearbeiten. Sie können dies mit aktiviertem visuellen Status überprüfen.
<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
Verwandte Themen
- 1. Wie wird eine Taste hervorgehoben, wenn gedrückt wird?
- 2. Halten Sie DROP_DOWN ToolItem hervorgehoben, während das Menü angezeigt wird
- 3. Wie wird das Sliding Panel in UWP implementiert?
- 4. Python Tkinter Listbox wird nicht hervorgehoben
- 5. Wie wird der Höchstwert jeder Spalte in einer Kontingenztabelle hervorgehoben?
- 6. LibreOffice Calc: Wie wird Zeile als pro Zelle Wert hervorgehoben?
- 7. angular-ui-grid: Wie wird die Zeile beim Mouseover hervorgehoben?
- 8. Wie wird der Bereich zwischen zwei Linien hervorgehoben? ggplot
- 9. Wie wird eine sehr lange Zeile mit CodeMirror hervorgehoben?
- 10. Wie wird der UWP WebView Cache gelöscht?
- 11. Wie wird ein Formular angedockt, wenn das Projekt ausgeführt wird?
- 12. Wie wird das Besitzerfenster minimiert, wenn ein Modal angezeigt wird?
- 13. ImageButton wird beim Klicken mit Transparentem Hintergrund nicht hervorgehoben
- 14. NSButton "Nur Text" - Variante, die beim Klicken hervorgehoben wird?
- 15. Wie füge ich ein Icon zu einem MenuFlyout in UWP hinzu?
- 16. Wie wird das Steuerelement in einem Pivot.ItemTemplate bei der Auswahl in UWP geändert?
- 17. Wie wird das Umbrechen in einem Raster in UWP XAML deaktiviert?
- 18. Wenn auf der Homepage, ganz meine Navigation hervorgehoben wird
- 19. Stilvererbung - wie wird ein benutzerdefinierter Standardstil verfeinert?
- 20. Wie wird eine statische IP in einem UWP festgelegt?
- 21. Wie wird die PDF-Datei in der UWP-App angezeigt?
- 22. Wie wird die Fortschrittsanzeige der Taskleiste in UWP gesetzt?
- 23. UWP MapControl Latitude wird nicht aktualisiert
- 24. Wie wird das DateTime-Format in der gesamten Anwendung in UWP festgelegt?
- 25. Wie wird das Hintergrundbild gedreht, wenn das Gerät gedreht wird?
- 26. Wie Webview als Hintergrundtask ausgeführt wird C# UWP Windows 10
- 27. UWP ListView Element Kontextmenü
- 28. Wie wird das Bild in ein String-Format kodiert?
- 29. Wie wird das Git Submodul in ein Unterverzeichnis verschoben?
- 30. Wie wird UWP NUnit Tests mit Visual Studio 2015 ausgeführt?
Ich bin nicht sicher, da dies die MenuFlyoutItem Hervorhebung auf der Maus zu sein scheint über selbst, und sie wollen, dass Größe hervorheben erhöhen. Aber was ich brauche, ist etwas, wo ein Element angeklickt wird und das nächste Mal, wenn ich das MenuFlyout sehe, das zuvor ausgewählte/angeklickte MenuFlyoutItem hervorgehoben wird, unabhängig davon, ob ich den mouseover-Vorgang mache oder nicht. – AbsoluteSith
Haben Sie den Stil von MenuFlyoutItem bearbeitet? – Archana
Ja, aber es ist meist für die Maus über Ereignis. Ist es wie immer, wenn ein MenuFlyoutItem ausgewählt ist, dann bearbeite seinen Stil manuell in der C#, um seine Hervorhebung zu zeigen? Das könnte funktionieren, lass es mich ausprobieren – AbsoluteSith