Skip to content

Commit 6f23fb5

Browse files
authored
[PTRun]Fix WPF transparent border issue on Windows 10 (#36392)
* Added border on W10 * Added a comment --------- Co-authored-by: Davide Giacometti <[email protected]>
1 parent feeeec6 commit 6f23fb5

File tree

2 files changed

+100
-93
lines changed

2 files changed

+100
-93
lines changed

src/modules/launcher/PowerLauncher/MainWindow.xaml

+95-93
Original file line numberDiff line numberDiff line change
@@ -27,109 +27,111 @@
2727
WindowStartupLocation="Manual"
2828
WindowStyle="None"
2929
mc:Ignorable="d">
30-
<Grid x:Name="RootGrid" MouseDown="OnMouseDown">
31-
<Grid.RowDefinitions>
32-
<RowDefinition Height="Auto" />
33-
<RowDefinition Height="Auto" />
34-
<RowDefinition Height="*" MaxHeight="{Binding Results.MaxHeight}" />
35-
</Grid.RowDefinitions>
36-
<Border
37-
x:Name="SearchBoxBorder"
38-
Grid.Row="0"
39-
Padding="12,4,12,3">
40-
<local:LauncherControl x:Name="SearchBox" />
41-
</Border>
42-
43-
<!-- Have to use a Grid instead of a StackPanel for scrolling to work? -->
44-
<Grid
45-
x:Name="KeywordsOverviewGrid"
46-
Grid.Row="1"
47-
MaxHeight="{Binding Results.MaxHeight}"
48-
Visibility="{Binding PluginsOverviewVisibility}">
30+
<Border x:Name="MainBorder" BorderBrush="{DynamicResource {x:Static SystemColors.ActiveBorderBrushKey}}">
31+
<Grid x:Name="RootGrid" MouseDown="OnMouseDown">
4932
<Grid.RowDefinitions>
5033
<RowDefinition Height="Auto" />
51-
<RowDefinition Height="*" />
34+
<RowDefinition Height="Auto" />
35+
<RowDefinition Height="*" MaxHeight="{Binding Results.MaxHeight}" />
5236
</Grid.RowDefinitions>
53-
<Rectangle
54-
Height="1"
55-
VerticalAlignment="Top"
56-
Fill="{DynamicResource DividerStrokeColorDefaultBrush}" />
57-
<TextBlock
58-
Margin="22,12,0,4"
59-
FontWeight="SemiBold"
60-
Foreground="{DynamicResource TextFillColorSecondaryBrush}"
61-
Style="{StaticResource CaptionTextBlockStyle}"
62-
Text="{x:Static p:Resources.PluginKeywords}" />
37+
<Border
38+
x:Name="SearchBoxBorder"
39+
Grid.Row="0"
40+
Padding="12,4,12,3">
41+
<local:LauncherControl x:Name="SearchBox" />
42+
</Border>
6343

64-
<ListView
65-
x:Name="pluginsHintsList"
44+
<!-- Have to use a Grid instead of a StackPanel for scrolling to work? -->
45+
<Grid
46+
x:Name="KeywordsOverviewGrid"
6647
Grid.Row="1"
67-
Background="Transparent"
68-
BorderBrush="Transparent"
69-
ItemContainerStyle="{StaticResource PluginsListViewItemStyle}"
70-
ItemsSource="{Binding Plugins}"
71-
PreviewMouseLeftButtonUp="PluginsHintsList_PreviewMouseLeftButtonUp"
72-
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
73-
ScrollViewer.VerticalScrollBarVisibility="Auto"
74-
SelectedItem="{Binding SelectedPlugin, Mode=TwoWay}"
75-
SelectionMode="Single">
76-
<ListView.ItemsPanel>
77-
<ItemsPanelTemplate>
78-
<VirtualizingStackPanel
79-
Margin="16,0"
80-
IsVirtualizing="{TemplateBinding VirtualizingPanel.IsVirtualizing}"
81-
VirtualizationMode="{TemplateBinding VirtualizingPanel.VirtualizationMode}" />
82-
</ItemsPanelTemplate>
83-
</ListView.ItemsPanel>
84-
<ListView.ItemTemplate>
85-
<DataTemplate>
86-
<Grid>
87-
<Grid.ColumnDefinitions>
88-
<ColumnDefinition Width="Auto" />
89-
<ColumnDefinition Width="*" />
90-
</Grid.ColumnDefinitions>
91-
<Border
92-
Width="32"
93-
Height="32"
94-
Padding="2,0,2,0"
95-
Background="{DynamicResource ControlFillColorDefaultBrush}"
96-
BorderBrush="{DynamicResource CardStrokeColorDefaultBrush}"
97-
BorderThickness="1"
98-
CornerRadius="4"
99-
ToolTipService.ToolTip="{Binding Metadata.ActionKeyword}">
48+
MaxHeight="{Binding Results.MaxHeight}"
49+
Visibility="{Binding PluginsOverviewVisibility}">
50+
<Grid.RowDefinitions>
51+
<RowDefinition Height="Auto" />
52+
<RowDefinition Height="*" />
53+
</Grid.RowDefinitions>
54+
<Rectangle
55+
Height="1"
56+
VerticalAlignment="Top"
57+
Fill="{DynamicResource DividerStrokeColorDefaultBrush}" />
58+
<TextBlock
59+
Margin="22,12,0,4"
60+
FontWeight="SemiBold"
61+
Foreground="{DynamicResource TextFillColorSecondaryBrush}"
62+
Style="{StaticResource CaptionTextBlockStyle}"
63+
Text="{x:Static p:Resources.PluginKeywords}" />
64+
65+
<ListView
66+
x:Name="pluginsHintsList"
67+
Grid.Row="1"
68+
Background="Transparent"
69+
BorderBrush="Transparent"
70+
ItemContainerStyle="{StaticResource PluginsListViewItemStyle}"
71+
ItemsSource="{Binding Plugins}"
72+
PreviewMouseLeftButtonUp="PluginsHintsList_PreviewMouseLeftButtonUp"
73+
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
74+
ScrollViewer.VerticalScrollBarVisibility="Auto"
75+
SelectedItem="{Binding SelectedPlugin, Mode=TwoWay}"
76+
SelectionMode="Single">
77+
<ListView.ItemsPanel>
78+
<ItemsPanelTemplate>
79+
<VirtualizingStackPanel
80+
Margin="16,0"
81+
IsVirtualizing="{TemplateBinding VirtualizingPanel.IsVirtualizing}"
82+
VirtualizationMode="{TemplateBinding VirtualizingPanel.VirtualizationMode}" />
83+
</ItemsPanelTemplate>
84+
</ListView.ItemsPanel>
85+
<ListView.ItemTemplate>
86+
<DataTemplate>
87+
<Grid>
88+
<Grid.ColumnDefinitions>
89+
<ColumnDefinition Width="Auto" />
90+
<ColumnDefinition Width="*" />
91+
</Grid.ColumnDefinitions>
92+
<Border
93+
Width="32"
94+
Height="32"
95+
Padding="2,0,2,0"
96+
Background="{DynamicResource ControlFillColorDefaultBrush}"
97+
BorderBrush="{DynamicResource CardStrokeColorDefaultBrush}"
98+
BorderThickness="1"
99+
CornerRadius="4"
100+
ToolTipService.ToolTip="{Binding Metadata.ActionKeyword}">
101+
<TextBlock
102+
HorizontalAlignment="Center"
103+
VerticalAlignment="Center"
104+
FontWeight="SemiBold"
105+
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
106+
Text="{Binding Metadata.ActionKeyword}"
107+
TextAlignment="Left"
108+
TextTrimming="WordEllipsis" />
109+
</Border>
100110
<TextBlock
101-
HorizontalAlignment="Center"
111+
Grid.Column="1"
112+
Margin="12,0,0,0"
102113
VerticalAlignment="Center"
103-
FontWeight="SemiBold"
104114
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
105-
Text="{Binding Metadata.ActionKeyword}"
106-
TextAlignment="Left"
107-
TextTrimming="WordEllipsis" />
108-
</Border>
109-
<TextBlock
110-
Grid.Column="1"
111-
Margin="12,0,0,0"
112-
VerticalAlignment="Center"
113-
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
114-
Text="{Binding Plugin.Description}"
115-
TextTrimming="CharacterEllipsis"
116-
TextWrapping="Wrap" />
117-
</Grid>
118-
</DataTemplate>
119-
</ListView.ItemTemplate>
120-
</ListView>
121-
</Grid>
115+
Text="{Binding Plugin.Description}"
116+
TextTrimming="CharacterEllipsis"
117+
TextWrapping="Wrap" />
118+
</Grid>
119+
</DataTemplate>
120+
</ListView.ItemTemplate>
121+
</ListView>
122+
</Grid>
122123

123-
<local:ResultList
124-
x:Name="ListBox"
125-
Grid.Row="2"
126-
VerticalAlignment="Stretch"
127-
BorderBrush="{DynamicResource DividerStrokeColorDefaultBrush}"
128-
BorderThickness="0,1,0,0"
129-
PreviewMouseDown="ListBox_PreviewMouseDown"
130-
Visibility="{Binding Results.Visibility}" />
124+
<local:ResultList
125+
x:Name="ListBox"
126+
Grid.Row="2"
127+
VerticalAlignment="Stretch"
128+
BorderBrush="{DynamicResource DividerStrokeColorDefaultBrush}"
129+
BorderThickness="0,1,0,0"
130+
PreviewMouseDown="ListBox_PreviewMouseDown"
131+
Visibility="{Binding Results.Visibility}" />
131132

132-
</Grid>
133+
</Grid>
134+
</Border>
133135
<Window.InputBindings>
134136
<KeyBinding Key="Escape" Command="{Binding EscCommand}" />
135137
<KeyBinding Key="Enter" Command="{Binding OpenResultWithKeyboardCommand}" />

src/modules/launcher/PowerLauncher/MainWindow.xaml.cs

+5
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,11 @@ private void OnSourceInitialized(object sender, EventArgs e)
200200
DWM_WINDOW_CORNER_PREFERENCE preference = DWM_WINDOW_CORNER_PREFERENCE.DWMWCP_ROUND;
201201
DwmSetWindowAttribute(hWnd, attribute, ref preference, sizeof(uint));
202202
}
203+
else
204+
{
205+
// On Windows10 ResizeMode="NoResize" removes the border so we add a new one.
206+
MainBorder.BorderThickness = new System.Windows.Thickness(0.5);
207+
}
203208
}
204209

205210
private void OnLoaded(object sender, RoutedEventArgs e)

0 commit comments

Comments
 (0)