2025-11-29 23:23:24 +01:00
|
|
|
<?xml version="1.0" encoding="utf-8" ?>
|
|
|
|
|
<UserControl
|
|
|
|
|
x:Class="Microsoft.CmdPal.UI.Controls.DevRibbon"
|
|
|
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
|
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
|
|
|
xmlns:controls="using:CommunityToolkit.WinUI.Controls"
|
|
|
|
|
xmlns:converters="using:CommunityToolkit.WinUI.Converters"
|
|
|
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
|
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
|
|
|
xmlns:viewModels="using:Microsoft.CmdPal.UI.ViewModels"
|
|
|
|
|
mc:Ignorable="d">
|
|
|
|
|
|
|
|
|
|
<UserControl.Resources>
|
|
|
|
|
<DataTemplate x:Key="LogEntryTemplate" x:DataType="viewModels:LogEntryViewModel">
|
|
|
|
|
<controls:SettingsExpander Description="{x:Bind Description}" Header="{x:Bind Header}">
|
|
|
|
|
<controls:SettingsExpander.HeaderIcon>
|
|
|
|
|
<FontIcon Glyph="{x:Bind SeverityGlyph}" />
|
|
|
|
|
</controls:SettingsExpander.HeaderIcon>
|
|
|
|
|
<controls:SettingsExpander.Items>
|
|
|
|
|
<controls:SettingsCard HorizontalContentAlignment="Stretch" ContentAlignment="Vertical">
|
|
|
|
|
<ScrollViewer
|
|
|
|
|
MaxWidth="1160"
|
|
|
|
|
HorizontalScrollMode="Auto"
|
|
|
|
|
VerticalScrollMode="Auto">
|
|
|
|
|
<TextBlock
|
|
|
|
|
FontFamily="Consolas"
|
|
|
|
|
FontSize="11"
|
|
|
|
|
Foreground="{ThemeResource SystemControlPageTextBaseMediumBrush}"
|
|
|
|
|
IsTextSelectionEnabled="True"
|
|
|
|
|
Text="{x:Bind Details}"
|
|
|
|
|
TextWrapping="NoWrap" />
|
|
|
|
|
</ScrollViewer>
|
|
|
|
|
</controls:SettingsCard>
|
|
|
|
|
</controls:SettingsExpander.Items>
|
|
|
|
|
</controls:SettingsExpander>
|
|
|
|
|
</DataTemplate>
|
|
|
|
|
|
|
|
|
|
<converters:BoolToVisibilityConverter
|
|
|
|
|
x:Key="InvertedBoolToVisibilityConverter"
|
|
|
|
|
FalseValue="Visible"
|
|
|
|
|
TrueValue="Collapsed" />
|
|
|
|
|
|
|
|
|
|
</UserControl.Resources>
|
|
|
|
|
|
|
|
|
|
<Grid>
|
|
|
|
|
<Border
|
|
|
|
|
x:Name="RootBorder"
|
|
|
|
|
Height="26"
|
|
|
|
|
HorizontalAlignment="Right"
|
|
|
|
|
VerticalAlignment="Top"
|
|
|
|
|
Background="{ThemeResource SettingsCardBackground}"
|
|
|
|
|
BorderBrush="{ThemeResource SurfaceStrokeColorFlyoutBrush}"
|
|
|
|
|
BorderThickness="1,0,1,1"
|
|
|
|
|
CornerRadius="0,0,8,8"
|
|
|
|
|
Opacity="0.3">
|
|
|
|
|
<Button
|
|
|
|
|
Padding="0"
|
|
|
|
|
CornerRadius="0,0,8,8"
|
|
|
|
|
FontSize="11"
|
|
|
|
|
PointerEntered="DevRibbonButton_PointerEntered"
|
|
|
|
|
PointerExited="DevRibbonButton_PointerExited">
|
|
|
|
|
<StackPanel Orientation="Horizontal">
|
|
|
|
|
<StackPanel
|
|
|
|
|
Padding="8,4"
|
|
|
|
|
VerticalAlignment="Center"
|
|
|
|
|
Background="DarkOrange"
|
|
|
|
|
Orientation="Horizontal"
|
|
|
|
|
Visibility="{x:Bind VisibleIfGreaterThanZero(ViewModel.WarningCount), Mode=OneWay}">
|
|
|
|
|
<FontIcon
|
|
|
|
|
Margin="0,0,8,0"
|
|
|
|
|
VerticalAlignment="Center"
|
|
|
|
|
FontFamily="{ThemeResource SymbolThemeFontFamily}"
|
|
|
|
|
FontSize="12"
|
|
|
|
|
Glyph="" />
|
|
|
|
|
<TextBlock VerticalAlignment="Center">
|
|
|
|
|
<Run Text="{x:Bind ViewModel.WarningCount, Mode=OneWay}" />
|
|
|
|
|
</TextBlock>
|
|
|
|
|
</StackPanel>
|
|
|
|
|
<StackPanel
|
|
|
|
|
Padding="8,4"
|
|
|
|
|
VerticalAlignment="Center"
|
|
|
|
|
Background="Maroon"
|
|
|
|
|
Orientation="Horizontal"
|
|
|
|
|
Visibility="{x:Bind VisibleIfGreaterThanZero(ViewModel.ErrorCount), Mode=OneWay}">
|
|
|
|
|
<FontIcon
|
|
|
|
|
Margin="0,0,8,0"
|
|
|
|
|
VerticalAlignment="Center"
|
|
|
|
|
FontFamily="{ThemeResource SymbolThemeFontFamily}"
|
|
|
|
|
FontSize="12"
|
|
|
|
|
Glyph="" />
|
|
|
|
|
<TextBlock VerticalAlignment="Center">
|
|
|
|
|
<Run Text="{x:Bind ViewModel.ErrorCount, Mode=OneWay}" />
|
|
|
|
|
</TextBlock>
|
|
|
|
|
</StackPanel>
|
|
|
|
|
<Border Padding="8,4">
|
|
|
|
|
<Border.Background>
|
|
|
|
|
<SolidColorBrush Color="{x:Bind ViewModel.TagColor}" />
|
|
|
|
|
</Border.Background>
|
|
|
|
|
<TextBlock Padding="4" VerticalAlignment="Center">
|
|
|
|
|
<Run Text="{x:Bind ViewModel.Tag}" />
|
|
|
|
|
</TextBlock>
|
|
|
|
|
</Border>
|
|
|
|
|
</StackPanel>
|
|
|
|
|
|
|
|
|
|
<Button.Flyout>
|
|
|
|
|
<Flyout
|
|
|
|
|
Placement="Bottom"
|
|
|
|
|
ShouldConstrainToRootBounds="False"
|
|
|
|
|
SystemBackdrop="{ThemeResource AcrylicBackgroundFillColorDefaultBackdrop}">
|
|
|
|
|
<Flyout.FlyoutPresenterStyle>
|
|
|
|
|
<Style BasedOn="{StaticResource DefaultFlyoutPresenterStyle}" TargetType="FlyoutPresenter">
|
|
|
|
|
<Setter Property="MinWidth" Value="600" />
|
|
|
|
|
<Setter Property="MaxWidth" Value="1200" />
|
|
|
|
|
<Setter Property="Padding" Value="0" />
|
|
|
|
|
</Style>
|
|
|
|
|
</Flyout.FlyoutPresenterStyle>
|
|
|
|
|
|
|
|
|
|
<Grid x:Name="FlyoutContent">
|
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
|
<RowDefinition Height="*" />
|
|
|
|
|
<RowDefinition Height="Auto" />
|
|
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
|
|
|
|
|
<StackPanel Padding="16" Spacing="8">
|
|
|
|
|
|
|
|
|
|
<!-- Logs section -->
|
|
|
|
|
<TextBlock
|
|
|
|
|
Margin="1,0,0,6"
|
|
|
|
|
Style="{ThemeResource SettingsSectionHeaderTextBlockStyle}"
|
|
|
|
|
Text="Logs" />
|
|
|
|
|
<ItemsControl ItemTemplate="{StaticResource LogEntryTemplate}" ItemsSource="{x:Bind ViewModel.LatestLogs, Mode=OneWay}" />
|
|
|
|
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
|
|
|
|
<Button Command="{x:Bind ViewModel.OpenLogFileCommand}" Content="Open Log File" />
|
|
|
|
|
<Button Command="{x:Bind ViewModel.OpenLogFolderCommand}" Content="Open Log Folder" />
|
|
|
|
|
<Button Command="{x:Bind ViewModel.ResetErrorCountersCommand}" Content="Clear Counters" />
|
|
|
|
|
</StackPanel>
|
|
|
|
|
|
|
|
|
|
<!-- Build info section -->
|
|
|
|
|
<TextBlock Style="{ThemeResource SettingsSectionHeaderTextBlockStyle}" Text="Build Info" />
|
|
|
|
|
<Border
|
|
|
|
|
Padding="16"
|
|
|
|
|
Background="{ThemeResource SettingsCardBackground}"
|
|
|
|
|
BorderBrush="{ThemeResource SettingsCardBorderBrush}"
|
|
|
|
|
BorderThickness="1">
|
|
|
|
|
<Grid ColumnSpacing="8">
|
|
|
|
|
<Grid.Resources>
|
|
|
|
|
<Style
|
|
|
|
|
x:Key="KeyTextBlockStyle"
|
|
|
|
|
BasedOn="{StaticResource CaptionTextBlockStyle}"
|
|
|
|
|
TargetType="TextBlock">
|
|
|
|
|
<Setter Property="IsTextSelectionEnabled" Value="True" />
|
|
|
|
|
<Setter Property="Foreground" Value="{ThemeResource TextFillColorSecondaryBrush}" />
|
|
|
|
|
</Style>
|
|
|
|
|
<Style
|
|
|
|
|
x:Key="ValueTextBlockStyle"
|
|
|
|
|
BasedOn="{StaticResource CaptionTextBlockStyle}"
|
|
|
|
|
TargetType="TextBlock">
|
|
|
|
|
<Setter Property="IsTextSelectionEnabled" Value="True" />
|
|
|
|
|
<Setter Property="TextAlignment" Value="Right" />
|
|
|
|
|
</Style>
|
|
|
|
|
</Grid.Resources>
|
|
|
|
|
<Grid.ColumnDefinitions>
|
|
|
|
|
<ColumnDefinition Width="*" />
|
|
|
|
|
<ColumnDefinition Width="Auto" />
|
|
|
|
|
</Grid.ColumnDefinitions>
|
|
|
|
|
<Grid.RowDefinitions>
|
|
|
|
|
<RowDefinition />
|
|
|
|
|
<RowDefinition />
|
|
|
|
|
<RowDefinition />
|
|
|
|
|
</Grid.RowDefinitions>
|
|
|
|
|
<TextBlock
|
|
|
|
|
Grid.Row="0"
|
|
|
|
|
Grid.Column="0"
|
|
|
|
|
Style="{StaticResource KeyTextBlockStyle}"
|
|
|
|
|
Text="Configuration:" />
|
|
|
|
|
<TextBlock
|
|
|
|
|
Grid.Row="0"
|
|
|
|
|
Grid.Column="1"
|
|
|
|
|
Style="{StaticResource ValueTextBlockStyle}"
|
|
|
|
|
Text="{x:Bind ViewModel.BuildConfiguration, Mode=OneWay}" />
|
|
|
|
|
|
|
|
|
|
<TextBlock
|
|
|
|
|
Grid.Row="1"
|
|
|
|
|
Grid.Column="0"
|
|
|
|
|
Style="{StaticResource KeyTextBlockStyle}"
|
|
|
|
|
Text="AOT:" />
|
|
|
|
|
<TextBlock
|
|
|
|
|
Grid.Row="1"
|
|
|
|
|
Grid.Column="1"
|
|
|
|
|
Style="{StaticResource ValueTextBlockStyle}"
|
|
|
|
|
Text="{x:Bind ViewModel.IsAot, Mode=OneWay}" />
|
|
|
|
|
|
|
|
|
|
<TextBlock
|
|
|
|
|
Grid.Row="2"
|
|
|
|
|
Grid.Column="0"
|
|
|
|
|
Style="{StaticResource KeyTextBlockStyle}"
|
|
|
|
|
Text="Trimmed:" />
|
|
|
|
|
<TextBlock
|
|
|
|
|
Grid.Row="2"
|
|
|
|
|
Grid.Column="1"
|
|
|
|
|
Style="{StaticResource ValueTextBlockStyle}"
|
|
|
|
|
Text="{x:Bind ViewModel.IsPublishTrimmed, Mode=OneWay}" />
|
|
|
|
|
|
|
|
|
|
</Grid>
|
|
|
|
|
</Border>
|
CmdPal: GEH per partes; part 1: error report builder, sanitizer and internals tools setting page (#44140)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This PR adds three parts of the original big bad global error handler
(error report builder, sanitization and internal tools UI).
### Error Report Generation
- `ErrorReportBuilder`: Produces a detailed, technical report with
system context.
- Comprehensive data: OS version, architecture, culture, app version,
elevation status, etc.
- Exception analysis: Coalesces nested exception messages and HRESULT
details for clearer diagnostics.
<details><summary>Example</summary>
<pre>
This is an error report generated by Windows Command Palette.
If you are seeing this, it means something went a little sideways in the
app.
You can help us fix it by filing a report at
https://aka.ms/powerToysReportBug.
(While you’re at it, give the details below a quick skim — just to make
sure there’s nothing personal you’d prefer not to share. It’s rare, but
sometimes little surprises sneak in.)
============================================================
Summary:
Message: Test exception; thrown from the UI thread
Type: System.NotImplementedException
Source: Microsoft.CmdPal.UI
Time: 2025-08-25 18:54:44.3854569
HRESULT: 0x80004001 (-2147467263)
Context: MainThreadException
Application:
App version: 0.0.1.0
Is elevated: no
Environment:
OS version: Microsoft Windows 10.0.26120
OS architecture: X64
Runtime identifier: win-x64
Framework: .NET 9.0.8
Process architecture: X64
Culture: cs-CZ
UI culture: en-US
Stack Trace:
at
Microsoft.CmdPal.UI.Settings.InternalPage.ThrowPlainMainThreadException_Click(Object
sender, RoutedEventArgs e)
at
WinRT._EventSource_global__Microsoft_UI_Xaml_RoutedEventHandler.EventState.<GetEventInvoke>b__1_0(Object
sender, RoutedEventArgs e)
at ABI.Microsoft.UI.Xaml.RoutedEventHandler.Do_Abi_Invoke(IntPtr
thisPtr, IntPtr sender, IntPtr e)
------------------ Full Exception Details ------------------
System.NotImplementedException: Test exception; thrown from the UI
thread
at
Microsoft.CmdPal.UI.Settings.InternalPage.ThrowPlainMainThreadException_Click(Object
sender, RoutedEventArgs e)
at
WinRT._EventSource_global__Microsoft_UI_Xaml_RoutedEventHandler.EventState.<GetEventInvoke>b__1_0(Object
sender, RoutedEventArgs e)
at ABI.Microsoft.UI.Xaml.RoutedEventHandler.Do_Abi_Invoke(IntPtr
thisPtr, IntPtr sender, IntPtr e)
============================================================
</pre>
</details>
Real-world example: #41362
### PII Sanitization Framework
- `ErrorReportSanitizer`: Multi-layer sanitization pipeline for
sensitive data.
- Nine specialized rule providers:
- `PiiRuleProvider`: Personally identifiable information (emails, phone
numbers, SSNs).
- `ProfilePathAndUsernameRuleProvider`: Windows user profiles and
usernames.
- `NetworkRuleProvider`: IP addresses, MAC addresses, network
identifiers.
- `SecretKeyValueRulesProvider`: API keys, tokens, passwords in
key/value formats.
- `FilenameMaskRuleProvider`: Sensitive file paths and extensions.
- `UrlRuleProvider`: URLs and web addresses.
- `TokenRuleProvider`: JWT and other auth tokens.
- `ConnectionStringRuleProvider`: Database connection strings.
- `EnvironmentPropertiesRuleProvider`: Environment variables and system
properties.
### Internals Tools Page
A page in settings available in non-CI-builds:
<img width="1305" height="745" alt="image"
src="https://github.com/user-attachments/assets/3145ecfd-997f-491d-8c8a-6096634b6045"
/>
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [ ] Closes: #xxx
<!-- - [ ] Closes: #yyy (add separate lines for additional resolved
issues) -->
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx
<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments
<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2026-01-29 04:09:37 +01:00
|
|
|
|
|
|
|
|
<!-- More section -->
|
|
|
|
|
<TextBlock Style="{ThemeResource SettingsSectionHeaderTextBlockStyle}" Text="More" />
|
2026-02-10 01:15:22 +01:00
|
|
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
CmdPal: GEH per partes; part 1: error report builder, sanitizer and internals tools setting page (#44140)
<!-- Enter a brief description/summary of your PR here. What does it
fix/what does it change/how was it tested (even manually, if necessary)?
-->
## Summary of the Pull Request
This PR adds three parts of the original big bad global error handler
(error report builder, sanitization and internal tools UI).
### Error Report Generation
- `ErrorReportBuilder`: Produces a detailed, technical report with
system context.
- Comprehensive data: OS version, architecture, culture, app version,
elevation status, etc.
- Exception analysis: Coalesces nested exception messages and HRESULT
details for clearer diagnostics.
<details><summary>Example</summary>
<pre>
This is an error report generated by Windows Command Palette.
If you are seeing this, it means something went a little sideways in the
app.
You can help us fix it by filing a report at
https://aka.ms/powerToysReportBug.
(While you’re at it, give the details below a quick skim — just to make
sure there’s nothing personal you’d prefer not to share. It’s rare, but
sometimes little surprises sneak in.)
============================================================
Summary:
Message: Test exception; thrown from the UI thread
Type: System.NotImplementedException
Source: Microsoft.CmdPal.UI
Time: 2025-08-25 18:54:44.3854569
HRESULT: 0x80004001 (-2147467263)
Context: MainThreadException
Application:
App version: 0.0.1.0
Is elevated: no
Environment:
OS version: Microsoft Windows 10.0.26120
OS architecture: X64
Runtime identifier: win-x64
Framework: .NET 9.0.8
Process architecture: X64
Culture: cs-CZ
UI culture: en-US
Stack Trace:
at
Microsoft.CmdPal.UI.Settings.InternalPage.ThrowPlainMainThreadException_Click(Object
sender, RoutedEventArgs e)
at
WinRT._EventSource_global__Microsoft_UI_Xaml_RoutedEventHandler.EventState.<GetEventInvoke>b__1_0(Object
sender, RoutedEventArgs e)
at ABI.Microsoft.UI.Xaml.RoutedEventHandler.Do_Abi_Invoke(IntPtr
thisPtr, IntPtr sender, IntPtr e)
------------------ Full Exception Details ------------------
System.NotImplementedException: Test exception; thrown from the UI
thread
at
Microsoft.CmdPal.UI.Settings.InternalPage.ThrowPlainMainThreadException_Click(Object
sender, RoutedEventArgs e)
at
WinRT._EventSource_global__Microsoft_UI_Xaml_RoutedEventHandler.EventState.<GetEventInvoke>b__1_0(Object
sender, RoutedEventArgs e)
at ABI.Microsoft.UI.Xaml.RoutedEventHandler.Do_Abi_Invoke(IntPtr
thisPtr, IntPtr sender, IntPtr e)
============================================================
</pre>
</details>
Real-world example: #41362
### PII Sanitization Framework
- `ErrorReportSanitizer`: Multi-layer sanitization pipeline for
sensitive data.
- Nine specialized rule providers:
- `PiiRuleProvider`: Personally identifiable information (emails, phone
numbers, SSNs).
- `ProfilePathAndUsernameRuleProvider`: Windows user profiles and
usernames.
- `NetworkRuleProvider`: IP addresses, MAC addresses, network
identifiers.
- `SecretKeyValueRulesProvider`: API keys, tokens, passwords in
key/value formats.
- `FilenameMaskRuleProvider`: Sensitive file paths and extensions.
- `UrlRuleProvider`: URLs and web addresses.
- `TokenRuleProvider`: JWT and other auth tokens.
- `ConnectionStringRuleProvider`: Database connection strings.
- `EnvironmentPropertiesRuleProvider`: Environment variables and system
properties.
### Internals Tools Page
A page in settings available in non-CI-builds:
<img width="1305" height="745" alt="image"
src="https://github.com/user-attachments/assets/3145ecfd-997f-491d-8c8a-6096634b6045"
/>
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [ ] Closes: #xxx
<!-- - [ ] Closes: #yyy (add separate lines for additional resolved
issues) -->
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [ ] **Tests:** Added/updated and all pass
- [ ] **Localization:** All end-user-facing strings can be localized
- [ ] **Dev docs:** Added/updated
- [ ] **New binaries:** Added on the required places
- [ ] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [ ] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [ ] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [ ] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [ ] **Documentation updated:** If checked, please file a pull request
on [our docs
repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys)
and link it here: #xxx
<!-- Provide a more detailed description of the PR, other things fixed,
or any additional comments/features here -->
## Detailed Description of the Pull Request / Additional comments
<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2026-01-29 04:09:37 +01:00
|
|
|
<Button Command="{x:Bind ViewModel.OpenInternalToolsCommand}" Content="Open internal tools" />
|
2026-02-10 01:15:22 +01:00
|
|
|
<Button Command="{x:Bind ViewModel.ToggleDevRibbonVisibilityCommand}" Content="Hide me" />
|
|
|
|
|
</StackPanel>
|
2025-11-29 23:23:24 +01:00
|
|
|
</StackPanel>
|
|
|
|
|
|
|
|
|
|
<!-- Footer -->
|
|
|
|
|
<Border
|
|
|
|
|
Grid.Row="1"
|
|
|
|
|
Padding="16"
|
|
|
|
|
Background="{ThemeResource SettingsCardBackground}"
|
|
|
|
|
BorderBrush="{ThemeResource SettingsCardBorderBrush}"
|
|
|
|
|
BorderThickness="1"
|
|
|
|
|
CornerRadius="{ThemeResource ControlCornerRadius}"
|
|
|
|
|
Visibility="{x:Bind ViewModel.IsAotReleaseConfiguration, Mode=OneWay, Converter={StaticResource InvertedBoolToVisibilityConverter}}">
|
|
|
|
|
<TextBlock Text="Warning: Test in Release/AOT configuration to verify everything works." TextWrapping="Wrap" />
|
|
|
|
|
</Border>
|
|
|
|
|
|
|
|
|
|
</Grid>
|
|
|
|
|
</Flyout>
|
|
|
|
|
</Button.Flyout>
|
|
|
|
|
</Button>
|
|
|
|
|
</Border>
|
|
|
|
|
<VisualStateManager.VisualStateGroups>
|
|
|
|
|
<VisualStateGroup x:Name="CommonStates">
|
|
|
|
|
<VisualState x:Name="Normal" />
|
|
|
|
|
<VisualState x:Name="PointerOver">
|
|
|
|
|
<Storyboard>
|
|
|
|
|
<DoubleAnimation
|
|
|
|
|
Storyboard.TargetName="RootBorder"
|
|
|
|
|
Storyboard.TargetProperty="Opacity"
|
|
|
|
|
To="1.0"
|
|
|
|
|
Duration="0:0:0.1" />
|
|
|
|
|
</Storyboard>
|
|
|
|
|
</VisualState>
|
|
|
|
|
</VisualStateGroup>
|
|
|
|
|
<VisualStateGroup x:Name="SeverityStates">
|
|
|
|
|
<VisualState x:Name="NoLog" />
|
|
|
|
|
<VisualState x:Name="WarningLog">
|
|
|
|
|
<Storyboard>
|
|
|
|
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="SeverityIcon" Storyboard.TargetProperty="Glyph">
|
|
|
|
|
<DiscreteObjectKeyFrame KeyTime="0" Value="" />
|
|
|
|
|
</ObjectAnimationUsingKeyFrames>
|
|
|
|
|
</Storyboard>
|
|
|
|
|
</VisualState>
|
|
|
|
|
<VisualState x:Name="ErrorLog">
|
|
|
|
|
<Storyboard>
|
|
|
|
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="SeverityIcon" Storyboard.TargetProperty="Glyph">
|
|
|
|
|
<DiscreteObjectKeyFrame KeyTime="0" Value="" />
|
|
|
|
|
</ObjectAnimationUsingKeyFrames>
|
|
|
|
|
</Storyboard>
|
|
|
|
|
</VisualState>
|
|
|
|
|
</VisualStateGroup>
|
|
|
|
|
</VisualStateManager.VisualStateGroups>
|
|
|
|
|
</Grid>
|
|
|
|
|
</UserControl>
|