[Registry Preview] UI refresh (#25094)

* Init

* Add WinUIEx.dll to the installer
Update notice.md

---------

Co-authored-by: Stefan Markovic <stefan@janeasystems.com>
This commit is contained in:
Niels Laute
2023-03-29 16:11:37 +02:00
committed by GitHub
parent 6567e8db16
commit cf80ac9c1b
8 changed files with 277 additions and 174 deletions

View File

@@ -27,7 +27,7 @@
<PackageVersion Include="Microsoft.Windows.CsWin32" Version="0.2.46-beta" />
<PackageVersion Include="Microsoft.Windows.CsWinRT" Version="2.0.1" />
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.755" />
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.2.230217.4" />
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.2.230313.1" />
<PackageVersion Include="Microsoft.Xaml.Behaviors.WinUI.Managed" Version="2.0.9" />
<PackageVersion Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.39" />
<PackageVersion Include="ModernWpfUI" Version="0.9.4" />
@@ -55,7 +55,7 @@
<PackageVersion Include="UnitsNet" Version="4.145.0" />
<PackageVersion Include="Vanara.PInvoke.User32" Version="3.4.11" />
<PackageVersion Include="Vanara.PInvoke.Shell32" Version="3.4.11" />
<PackageVersion Include="WinUIEx" Version="1.8.0" />
<PackageVersion Include="WinUIEx" Version="2.1.0" />
</ItemGroup>
<ItemGroup Condition="'$(IsExperimentationLive)'!=''">
<!-- Additional dependencies used by experimentation -->

View File

@@ -302,7 +302,7 @@ SOFTWARE.
- Microsoft.Windows.CsWin32 0.2.46-beta
- Microsoft.Windows.CsWinRT 2.0.1
- Microsoft.Windows.SDK.BuildTools 10.0.22621.755
- Microsoft.WindowsAppSDK 1.2.230217.4
- Microsoft.WindowsAppSDK 1.2.230313.1
- Microsoft.Xaml.Behaviors.WinUI.Managed 2.0.9
- Microsoft.Xaml.Behaviors.Wpf 1.1.39
- ModernWpfUI 0.9.4
@@ -329,4 +329,4 @@ SOFTWARE.
- UnitsNet 4.145.0
- Vanara.PInvoke.Shell32 3.4.11
- Vanara.PInvoke.User32 3.4.11
- WinUIEx 1.8.0
- WinUIEx 2.1.0

View File

@@ -4,7 +4,7 @@
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define RegistryPreviewFiles=ColorCode.Core.dll;ColorCode.WinUI.dll;CommunityToolkit.Common.dll;CommunityToolkit.WinUI.UI.Controls.Core.dll;CommunityToolkit.WinUI.UI.Controls.DataGrid.dll;CommunityToolkit.WinUI.UI.Controls.Input.dll;CommunityToolkit.WinUI.UI.Controls.Layout.dll;CommunityToolkit.WinUI.UI.Controls.Markdown.dll;CommunityToolkit.WinUI.UI.Controls.Media.dll;CommunityToolkit.WinUI.UI.Controls.Primitives.dll;CommunityToolkit.WinUI.UI.dll;CommunityToolkit.WinUI.dll;ControlzEx.dll;Ijwhost.dll;Microsoft.Graphics.Canvas.Interop.dll;Microsoft.Graphics.Canvas.dll;Microsoft.Graphics.Display.dll;Microsoft.InteractiveExperiences.Projection.dll;Microsoft.WinUI.dll;Microsoft.Windows.AppLifecycle.Projection.dll;Microsoft.Windows.AppNotifications.Builder.Projection.dll;Microsoft.Windows.ApplicationModel.DynamicDependency.Projection.dll;Microsoft.Windows.ApplicationModel.Resources.Projection.dll;Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection.dll;Microsoft.Windows.SDK.NET.dll;Microsoft.Windows.Security.AccessControl.Projection.dll;Microsoft.Windows.System.Power.Projection.dll;Microsoft.Windows.Widgets.Projection.dll;Microsoft.Windows.Widgets.dll;Microsoft.WindowsAppRuntime.Bootstrap.Net.dll;Microsoft.Xaml.Behaviors.dll;PowerToys.Common.UI.dll;PowerToys.ManagedCommon.dll;PowerToys.ManagedTelemetry.dll;PowerToys.RegistryPreview.deps.json;PowerToys.RegistryPreview.dll;PowerToys.RegistryPreview.exe;PowerToys.RegistryPreview.runtimeconfig.json;PowerToys.RegistryPreviewExt.dll;PowerToys.Settings.UI.Lib.dll;System.CodeDom.dll;System.IO.Abstractions.dll;System.Management.dll;WinRT.Runtime.dll;app.ico;resources.pri?>
<?define RegistryPreviewFiles=ColorCode.Core.dll;ColorCode.WinUI.dll;CommunityToolkit.Common.dll;CommunityToolkit.WinUI.UI.Controls.Core.dll;CommunityToolkit.WinUI.UI.Controls.DataGrid.dll;CommunityToolkit.WinUI.UI.Controls.Input.dll;CommunityToolkit.WinUI.UI.Controls.Layout.dll;CommunityToolkit.WinUI.UI.Controls.Markdown.dll;CommunityToolkit.WinUI.UI.Controls.Media.dll;CommunityToolkit.WinUI.UI.Controls.Primitives.dll;CommunityToolkit.WinUI.UI.dll;CommunityToolkit.WinUI.dll;ControlzEx.dll;Ijwhost.dll;Microsoft.Graphics.Canvas.Interop.dll;Microsoft.Graphics.Canvas.dll;Microsoft.Graphics.Display.dll;Microsoft.InteractiveExperiences.Projection.dll;Microsoft.WinUI.dll;Microsoft.Windows.AppLifecycle.Projection.dll;Microsoft.Windows.AppNotifications.Builder.Projection.dll;Microsoft.Windows.ApplicationModel.DynamicDependency.Projection.dll;Microsoft.Windows.ApplicationModel.Resources.Projection.dll;Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection.dll;Microsoft.Windows.SDK.NET.dll;Microsoft.Windows.Security.AccessControl.Projection.dll;Microsoft.Windows.System.Power.Projection.dll;Microsoft.Windows.Widgets.Projection.dll;Microsoft.Windows.Widgets.dll;Microsoft.WindowsAppRuntime.Bootstrap.Net.dll;Microsoft.Xaml.Behaviors.dll;PowerToys.Common.UI.dll;PowerToys.ManagedCommon.dll;PowerToys.ManagedTelemetry.dll;PowerToys.RegistryPreview.deps.json;PowerToys.RegistryPreview.dll;PowerToys.RegistryPreview.exe;PowerToys.RegistryPreview.runtimeconfig.json;PowerToys.RegistryPreviewExt.dll;PowerToys.Settings.UI.Lib.dll;System.CodeDom.dll;System.IO.Abstractions.dll;System.Management.dll;WinRT.Runtime.dll;WinUIEx.dll;app.ico;resources.pri?>
<?if $(var.Platform) = x64?>
<?define RegistryPreviewFiles=$(var.RegistryPreviewFiles);clrcompression.dll?>
<?endif?>

View File

@@ -18,10 +18,11 @@ using Windows.Foundation.Metadata;
using Windows.Storage;
using Windows.Storage.Pickers;
using WinRT.Interop;
using WinUIEx;
namespace RegistryPreview
{
public sealed partial class MainWindow : Window
public sealed partial class MainWindow : WindowEx
{
/// <summary>
/// Event handler to grab the main window's size and position before it closes

View File

@@ -14,10 +14,11 @@ using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Windows.Foundation.Metadata;
using Windows.Storage;
using WinUIEx;
namespace RegistryPreview
{
public sealed partial class MainWindow : Window
public sealed partial class MainWindow : WindowEx
{
/// <summary>
/// Method that opens and processes the passed in file name; expected to be an absolute path and a first time open

View File

@@ -1,212 +1,311 @@
<Window
<winuiex:WindowEx
x:Class="RegistryPreview.MainWindow"
xmlns:controls="using:CommunityToolkit.WinUI.UI.Controls"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:RegistryPreview"
xmlns:controls="using:CommunityToolkit.WinUI.UI.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:RegistryPreview"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:ui="using:CommunityToolkit.WinUI.UI"
xmlns:winuiex="using:WinUIEx"
Closed="Window_Closed"
>
<Grid
x:Name="gridPreview"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
Width="Auto"
mc:Ignorable="d">
<winuiex:WindowEx.Backdrop>
<winuiex:MicaSystemBackdrop />
</winuiex:WindowEx.Backdrop>
<Grid
x:Name="gridPreview"
Width="Auto"
Height="Auto"
TabFocusNavigation="Cycle"
x:FieldModifier="public"
Loaded="GridPreview_Loaded"
>
TabFocusNavigation="Cycle">
<Grid.Resources>
<Style x:Key="GridCardStyle" TargetType="Grid">
<Style.Setters>
<Setter Property="Background" Value="{ThemeResource CardBackgroundFillColorDefaultBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="{ThemeResource CardStrokeColorDefaultBrush}" />
</Style.Setters>
</Style>
</Grid.Resources>
<Grid.ColumnDefinitions>
<!-- Left, Splitter, Right -->
<!-- Left, Splitter, Right -->
<ColumnDefinition Width="*" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="6"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<!-- CommandBar, Tree, Splitter, List, StackPanel -->
<RowDefinition Height="48"/>
<!-- CommandBar, Tree, Splitter, List, StackPanel -->
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="6" />
<RowDefinition Height="*" />
<RowDefinition Height="32"/>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<CommandBar
Name="commandBar"
Background="Transparent"
IsOpen="True"
DefaultLabelPosition="Right"
HorizontalAlignment="Left"
<Grid
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="3"
IsTabStop="False"
>
<AppBarButton x:Name="openButton" x:Uid="OpenButton" Icon="OpenFile" IsTabStop="False" Click="OpenButton_Click" HorizontalAlignment="Left">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator Modifiers="Control" Key="O" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
<AppBarButton x:Name="saveButton" x:Uid="SaveButton" Icon="Save" IsTabStop="False" Click="SaveButton_Click" HorizontalAlignment="Left" IsEnabled="False">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator Modifiers="None" Key="F2" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
<AppBarButton x:Name="saveAsButton" x:Uid="SaveAsButton" Icon="SaveLocal" IsTabStop="False" Click="SaveAsButton_Click" HorizontalAlignment="Left" IsEnabled="True">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator Modifiers="Shift" Key="F2" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
<AppBarButton x:Name="editButton" x:Uid="EditButton" Icon="NewWindow" IsTabStop="False" Click="EditButton_Click" HorizontalAlignment="Left">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator Modifiers="Control" Key="E" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
<AppBarButton x:Name="refreshButton" x:Uid="RefreshButton" Icon="Refresh" IsTabStop="False" Click="RefreshButton_Click" HorizontalAlignment="Left">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator Key="F5" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
<AppBarButton x:Name="writeButton" x:Uid="WriteButton" Icon="Share" IsTabStop="False" Click="WriteButton_Click" HorizontalAlignment="Left">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator Modifiers="Control" Key="W" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
<AppBarButton x:Name="registryButton" x:Uid="RegistryButton" Icon="Go" IsTabStop="False" Click="RegistryButton_Click" HorizontalAlignment="Left">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator Modifiers="Control" Key="R" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
</CommandBar>
Margin="8,8,8,8"
CornerRadius="{StaticResource OverlayCornerRadius}"
Style="{StaticResource GridCardStyle}">
<CommandBar
Name="commandBar"
HorizontalAlignment="Left"
BorderBrush="Transparent"
BorderThickness="0"
DefaultLabelPosition="Right"
IsOpen="True"
IsTabStop="False">
<AppBarButton
x:Name="openButton"
x:Uid="OpenButton"
HorizontalAlignment="Left"
Click="OpenButton_Click"
Icon="OpenFile"
IsTabStop="False">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator Key="O" Modifiers="Control" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
<AppBarButton
x:Name="saveButton"
x:Uid="SaveButton"
HorizontalAlignment="Left"
Click="SaveButton_Click"
Icon="Save"
IsEnabled="False"
IsTabStop="False">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator Key="F2" Modifiers="None" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
<AppBarButton
x:Name="saveAsButton"
x:Uid="SaveAsButton"
HorizontalAlignment="Left"
Click="SaveAsButton_Click"
Icon="SaveLocal"
IsEnabled="True"
IsTabStop="False">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator Key="F2" Modifiers="Shift" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
<AppBarButton
x:Name="editButton"
x:Uid="EditButton"
HorizontalAlignment="Left"
Click="EditButton_Click"
Icon="NewWindow"
IsTabStop="False">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator Key="E" Modifiers="Control" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
<AppBarButton
x:Name="refreshButton"
x:Uid="RefreshButton"
HorizontalAlignment="Left"
Click="RefreshButton_Click"
Icon="Refresh"
IsTabStop="False">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator Key="F5" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
<AppBarButton
x:Name="writeButton"
x:Uid="WriteButton"
HorizontalAlignment="Left"
Click="WriteButton_Click"
Icon="Share"
IsTabStop="False">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator Key="W" Modifiers="Control" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
<AppBarButton
x:Name="registryButton"
x:Uid="RegistryButton"
HorizontalAlignment="Left"
Click="RegistryButton_Click"
Icon="Go"
IsTabStop="False">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator Key="R" Modifiers="Control" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
</CommandBar>
</Grid>
<TextBox
x:Name="textBox"
x:Uid="textBox"
Grid.Column="0"
Grid.Row="1"
Grid.RowSpan="3"
Grid.Column="0"
Margin="8,0,0,0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsTabStop="True"
TabIndex="0"
IsTextPredictionEnabled="False"
IsSpellCheckEnabled="False"
AcceptsReturn="True"
PlaceholderText="{Binding PlaceholderText}"
TextWrapping="NoWrap"
CanBeScrollAnchor="False"
ScrollViewer.IsVerticalRailEnabled ="True"
ScrollViewer.IsHorizontalRailEnabled="True"
ScrollViewer.VerticalScrollBarVisibility="Visible"
ScrollViewer.HorizontalScrollBarVisibility="Visible"
FontFamily="Cascadia Mono, Consolas, Courier New"
/>
IsSpellCheckEnabled="False"
IsTabStop="True"
IsTextPredictionEnabled="False"
PlaceholderText="{Binding PlaceholderText}"
ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.IsHorizontalRailEnabled="True"
ScrollViewer.IsVerticalRailEnabled="True"
ScrollViewer.VerticalScrollBarVisibility="Visible"
TabIndex="0"
TextWrapping="NoWrap" />
<StackPanel
x:Name="stackPanelTextBox"
Grid.Column="0"
Grid.Row="4"
Grid.Column="0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsTabStop="False"
Background="Transparent"
>
<CheckBox
x:Name="checkBoxTextBox"
IsTabStop="False">
<CheckBox
x:Name="checkBoxTextBox"
x:Uid="checkBoxTextBox"
Content="{Binding Content}"
IsChecked="True"
HorizontalAlignment="Center"
VerticalAlignment="Center"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Checked="CheckBoxTextBox_Checked"
Content="{Binding Content}"
IsChecked="True"
IsTabStop="True"
TabIndex="1"
Checked="CheckBoxTextBox_Checked"
Unchecked="CheckBoxTextBox_Unchecked"
/>
Unchecked="CheckBoxTextBox_Unchecked" />
</StackPanel>
<TreeView
x:Name="treeView"
Grid.Column="2"
Grid.Row="1"
Background="Transparent"
CanDragItems="False"
AllowDrop="False"
AllowFocusOnInteraction="True"
CanReorderItems="False"
IsEnabled="True"
ScrollViewer.BringIntoViewOnFocusChange="True"
ScrollViewer.VerticalScrollMode="Auto"
ScrollViewer.VerticalScrollBarVisibility="Visible"
ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.HorizontalScrollMode="Enabled"
ItemInvoked="TreeView_ItemInvoked"
Padding="0,0,0,0"
IsTabStop="False"
TabIndex="2"
>
<TreeView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Padding="0,0,0,0" IsTabStop="False">
<Image Source="{Binding Path=Content.Image}" MaxHeight="16" MaxWidth="16" ToolTipService.ToolTip="{Binding Path=Content.ToolTipText}"/>
<TextBlock Padding="5,0,0,0" Text="{Binding Path=Content.Name}" />
</StackPanel>
</DataTemplate>
</TreeView.ItemTemplate>
</TreeView>
<controls:DataGrid
x:Name="dataGrid"
Background="Transparent"
<Grid
Grid.Row="1"
Grid.Column="2"
Margin="0,0,8,0"
CornerRadius="{StaticResource OverlayCornerRadius}"
Style="{StaticResource GridCardStyle}">
<TreeView
x:Name="treeView"
Padding="0,0,0,0"
AllowDrop="False"
AllowFocusOnInteraction="True"
Background="Transparent"
CanDragItems="False"
CanReorderItems="False"
IsEnabled="True"
IsTabStop="False"
ItemInvoked="TreeView_ItemInvoked"
ScrollViewer.BringIntoViewOnFocusChange="True"
ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.HorizontalScrollMode="Enabled"
ScrollViewer.VerticalScrollBarVisibility="Visible"
ScrollViewer.VerticalScrollMode="Auto"
TabIndex="2">
<TreeView.ItemTemplate>
<DataTemplate>
<StackPanel
Padding="0,0,0,0"
VerticalAlignment="Center"
IsTabStop="False"
Orientation="Horizontal">
<Image
MaxWidth="16"
MaxHeight="16"
Source="{Binding Path=Content.Image}"
ToolTipService.ToolTip="{Binding Path=Content.ToolTipText}" />
<TextBlock Padding="5,0,0,0" Text="{Binding Path=Content.Name}" />
</StackPanel>
</DataTemplate>
</TreeView.ItemTemplate>
</TreeView>
</Grid>
<Grid
Grid.Row="3"
Grid.RowSpan="2"
CanDrag="False"
SelectionMode="Single"
AllowDrop="False"
AreRowDetailsFrozen="True"
HeadersVisibility="Column"
RowDetailsVisibilityMode="Collapsed"
IsReadOnly="True"
AutoGenerateColumns="False"
ItemsSource="{x:Bind listRegistryValues}"
IsTabStop="true"
TabIndex="3"
>
<controls:DataGrid.Columns>
<controls:DataGridTemplateColumn
x:Uid="NameColumn"
Width="Auto"
IsReadOnly="True"
>
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
<TextBlock Padding="10,0,0,0" Text=" " FontSize="14" IsTabStop="False"/>
<Image Source="{Binding ImageUri}" MaxHeight="16" MaxWidth="16" IsTabStop="False" ToolTipService.ToolTip="{Binding ToolTipText}" />
<TextBlock Padding="5, 0, 10, 0" Text="{Binding Name}" FontSize="14" IsTabStop="False"/>
</StackPanel>
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
<controls:DataGridTextColumn
x:Uid="TypeColumn"
Width="Auto"
Binding="{Binding Type}"
FontSize="14"
/>
<controls:DataGridTextColumn
x:Uid="ValueColumn"
Width="Auto"
Binding="{Binding Value}"
FontSize="14"
/>
</controls:DataGrid.Columns>
</controls:DataGrid>
<controls:GridSplitter x:Name="verticalSplitter" Grid.Column="1" Grid.Row="1" Grid.RowSpan="4" CursorBehavior="ChangeOnSplitterHover" Background="{ThemeResource TextControlBorderBrush}" VerticalAlignment="Stretch" GripperCursor="SizeWestEast" IsTabStop="False"/>
<controls:GridSplitter x:Name="horizontalSplitter" Grid.Column="2" Grid.Row="2" CursorBehavior="ChangeOnSplitterHover" Background="{ThemeResource TextControlBorderBrush}" HorizontalAlignment="Stretch" GripperCursor="SizeNorthSouth" IsTabStop="False"/>
Grid.Column="2"
Margin="0,0,8,8"
Style="{StaticResource GridCardStyle}">
<controls:DataGrid
x:Name="dataGrid"
AllowDrop="False"
AreRowDetailsFrozen="True"
AutoGenerateColumns="False"
Background="Transparent"
CanDrag="False"
CornerRadius="{StaticResource OverlayCornerRadius}"
HeadersVisibility="Column"
IsReadOnly="True"
IsTabStop="true"
ItemsSource="{x:Bind listRegistryValues}"
RowDetailsVisibilityMode="Collapsed"
SelectionMode="Single"
TabIndex="3">
<controls:DataGrid.Columns>
<controls:DataGridTemplateColumn
x:Uid="NameColumn"
Width="Auto"
IsReadOnly="True">
<controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel VerticalAlignment="Center" Orientation="Horizontal">
<TextBlock
Padding="10,0,0,0"
FontSize="14"
IsTabStop="False"
Text=" " />
<Image
MaxWidth="16"
MaxHeight="16"
IsTabStop="False"
Source="{Binding ImageUri}"
ToolTipService.ToolTip="{Binding ToolTipText}" />
<TextBlock
Padding="5,0,10,0"
FontSize="14"
IsTabStop="False"
Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</controls:DataGridTemplateColumn.CellTemplate>
</controls:DataGridTemplateColumn>
<controls:DataGridTextColumn
x:Uid="TypeColumn"
Width="Auto"
Binding="{Binding Type}"
FontSize="14" />
<controls:DataGridTextColumn
x:Uid="ValueColumn"
Width="Auto"
Binding="{Binding Value}"
FontSize="14" />
</controls:DataGrid.Columns>
</controls:DataGrid>
</Grid>
<controls:GridSplitter
x:Name="verticalSplitter"
Grid.Row="1"
Grid.RowSpan="4"
Grid.Column="1"
VerticalAlignment="Stretch"
Background="Transparent"
CursorBehavior="ChangeOnSplitterHover"
GripperCursor="SizeWestEast"
IsTabStop="False" />
<controls:GridSplitter
x:Name="horizontalSplitter"
Grid.Row="2"
Grid.Column="2"
HorizontalAlignment="Stretch"
Background="Transparent"
CornerRadius="4"
CursorBehavior="ChangeOnSplitterHover"
GripperCursor="SizeNorthSouth"
IsTabStop="False" />
</Grid>
</Window>
</winuiex:WindowEx>

View File

@@ -11,10 +11,11 @@ using Microsoft.UI.Xaml.Controls;
using Windows.ApplicationModel.Resources;
using Windows.Data.Json;
using Windows.Graphics;
using WinUIEx;
namespace RegistryPreview
{
public sealed partial class MainWindow : Window
public sealed partial class MainWindow : WindowEx
{
// Const values
private const string REGISTRYHEADER4 = "regedit4";

View File

@@ -46,7 +46,8 @@
<ItemGroup>
<PackageReference Include="CommunityToolkit.WinUI.UI.Controls" />
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" />
<PackageReference Include="Microsoft.WindowsAppSDK" />
<PackageReference Include="Microsoft.WindowsAppSDK" />
<PackageReference Include="WinUIEx" />
<Manifest Include="$(ApplicationManifest)" />
</ItemGroup>