Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,31 @@
# 2.6.0 (2025-08-16)

- ✨ Updated styling to match changes to Visual Studio's Solution Explorer.

# 2.5.1 (2025-07-29)

- 🐛 Improved error handling when loading or unloading projects fails.
- 🐛 Improved error handling when loading or unloading projects fails.

# 2.5.0 (2023-12-23)

- ✨ Filtering options (load dependencies, use regular expressions, etc.) are now stored on a per-solution basis.
- ✨ The expanded state of nodes in the Project Filter dialog are remembered.
- ✨ Filtering options (load dependencies, use regular expressions, etc.) are now stored on a per-solution basis.
- ✨ The expanded state of nodes in the Project Filter dialog are remembered.

# 2.4.1 (2023-08-14)

- 🐛 When using a Solution Filter (`.slnf`), projects would sometimes be hidden in Solution Explorer after they were loaded (#4).
- 🐛 When using a Solution Filter (`.slnf`), projects would sometimes be hidden in Solution Explorer after they were loaded (#4).

# 2.4.0 (2022-10-22)

- ✨ When the option to expand loaded projects is turned off, the projects and any folders they were in will be collapsed instead.
- ✨ When the option to expand loaded projects is turned off, the projects and any folders they were in will be collapsed instead.

# 2.3.0 (2022-09-10)

- ✨ Added an option to prevent projects being expanded after they are loaded.
- ✨ Added an option to prevent projects being expanded after they are loaded.

# 2.2.0 (2022-06-05)

- ✨ Ensured that shared project dependencies are loaded.
- ✨ Ensured that shared project dependencies are loaded.

# 2.1.0 (2021-12-30)

Expand Down
5 changes: 5 additions & 0 deletions sample/Large/Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
</PropertyGroup>
</Project>
5 changes: 5 additions & 0 deletions sample/Small/Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
</PropertyGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,11 @@ public object Convert(object value, Type targetType, object parameter, CultureIn
}
}

return new Thickness(Length * depth, 0, 0, 0);
if (parameter is not int baseMargin) {
baseMargin = 0;
}

return new Thickness((Length * depth) + baseMargin, baseMargin, baseMargin, baseMargin);
}


Expand Down
2 changes: 1 addition & 1 deletion source/ProjectFilter/UI/FilterDialog.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@
<TextBox
x:Name="SearchBox"
Text="{Binding SearchText, UpdateSourceTrigger=PropertyChanged}"
Margin="0,0,0,2"
Margin="2,1,2,2"
properties:Watermark.Text="Filter projects... (Ctrl+F)"
properties:ClearOnEscape.Enabled="True"
properties:FocusWhenVisible.Enabled="True"
Expand Down
33 changes: 21 additions & 12 deletions source/ProjectFilter/UI/Resources.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -138,20 +138,25 @@

<ControlTemplate x:Key="TreeViewItemTemplate" TargetType="{x:Type TreeViewItem}">
<StackPanel Orientation="Vertical">
<Border Name="Bd"
<Border
x:Name="Bd"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}"
BorderThickness="1"
>

<Grid Margin="{Binding RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource IndentConverter}}">
<Border.Resources>
<!-- Apply a negative margin to cancel out the border thickness. -->
<system:Int32 x:Key="BaseMargin">-1</system:Int32>
</Border.Resources>

<Grid Margin="{Binding RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource IndentConverter}, ConverterParameter={StaticResource BaseMargin}}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" MinWidth="{StaticResource IndentSize}"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>

<ToggleButton
<ToggleButton
x:Name="Expander"
Grid.Column="0"
Style="{StaticResource ExpandCollapseToggleStyle}"
Expand All @@ -161,7 +166,7 @@
/>

<Border
Grid.Column="1"
Grid.Column="1"
SnapsToDevicePixels="True"
>

Expand Down Expand Up @@ -194,6 +199,7 @@

<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource {x:Static platform:TreeViewColors.SelectedItemActiveBrushKey}}"/>
<Setter TargetName="Bd" Property="BorderBrush" Value="{DynamicResource {x:Static platform:TreeViewColors.FocusVisualBorderBrushKey}}"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static platform:TreeViewColors.SelectedItemActiveTextBrushKey}}"/>
</Trigger>

Expand All @@ -204,6 +210,7 @@
</MultiTrigger.Conditions>

<Setter TargetName="Bd" Property="Background" Value="{DynamicResource {x:Static platform:TreeViewColors.SelectedItemInactiveBrushKey}}"/>
<Setter TargetName="Bd" Property="BorderBrush" Value="{DynamicResource {x:Static platform:TreeViewColors.SelectedItemActiveBrushKey}}"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static platform:TreeViewColors.SelectedItemInactiveTextBrushKey}}"/>
</MultiTrigger>
</ControlTemplate.Triggers>
Expand Down Expand Up @@ -275,10 +282,12 @@
<Setter TargetName="Watermark" Property="Foreground" Value="{DynamicResource {x:Static platform:SearchControlColors.MouseOverWatermarkTextBrushKey}}" />
</Trigger>

<!--
Keep the watermark visible but fade it out if
the TextBox is focused and has no text (the next
trigger will hide the watermark if there's text)
<!--
Keep the watermark visible but fade it out if the TextBox is focused and has
no text (the next trigger will hide the watermark if there's text). This isn't
the same as the search box in Solution Explorer (the watermark is always hidden
when focused), but since this search box is focused when the dialog is opened,
we want to keep the watermark so that you understand what the search box is for.
-->
<Trigger Property="IsKeyboardFocused" Value="True">
<Setter TargetName="Watermark" Property="Foreground" Value="{DynamicResource {x:Static platform:SearchControlColors.UnfocusedWatermarkTextBrushKey}}" />
Expand Down Expand Up @@ -346,7 +355,7 @@
</MultiTrigger.Conditions>

<Setter TargetName="border" Property="Background" Value="{DynamicResource {x:Static platform:EnvironmentColors.CommandBarHoverOverSelectedIconBrushKey}}" />
<Setter TargetName="border" Property="BorderBrush" Value="{DynamicResource {x:Static platform:EnvironmentColors.CommandBarSelectedBorderBrushKey}}" />
<Setter TargetName="border" Property="BorderBrush" Value="{DynamicResource {x:Static platform:EnvironmentColors.CommandBarHoverOverSelectedIconBorderBrushKey}}" />
</MultiTrigger>

<MultiTrigger>
Expand All @@ -356,7 +365,7 @@
</MultiTrigger.Conditions>

<Setter TargetName="border" Property="Background" Value="{DynamicResource {x:Static platform:EnvironmentColors.CommandBarMouseDownBackgroundGradientBrushKey}}" />
<Setter TargetName="border" Property="BorderBrush" Value="{DynamicResource {x:Static platform:EnvironmentColors.CommandBarSelectedBorderBrushKey}}" />
<Setter TargetName="border" Property="BorderBrush" Value="{DynamicResource {x:Static platform:EnvironmentColors.CommandBarBorderBrushKey}}" />
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
Expand Down
Loading