Make PropertyGrid controls immune from scrollbar wrapping (caused by #218)

This commit is contained in:
Brant Martin
2018-07-08 18:25:06 -04:00
parent b3f9d7e5c7
commit b8b0a0fcce
2 changed files with 15 additions and 1 deletions

View File

@@ -28,7 +28,7 @@
</ListView> </ListView>
<Button Grid.Row="1" Content="Open Folder" Margin="3" DockPanel.Dock="Bottom" Click="OpenFolder_OnClick"/> <Button Grid.Row="1" Content="Open Folder" Margin="3" DockPanel.Dock="Bottom" Click="OpenFolder_OnClick"/>
</Grid> </Grid>
<ScrollViewer Grid.Column="1" VerticalScrollBarVisibility="Auto" Margin="3"> <ScrollViewer Name="PScroll" Grid.Column="1" Margin="3">
<Frame NavigationUIVisibility="Hidden" Content="{Binding SelectedPlugin.Control}"/> <Frame NavigationUIVisibility="Hidden" Content="{Binding SelectedPlugin.Control}"/>
</ScrollViewer> </ScrollViewer>
</Grid> </Grid>

View File

@@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics; using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@@ -19,6 +20,7 @@ using Torch.API;
using Torch.API.Managers; using Torch.API.Managers;
using Torch.Managers; using Torch.Managers;
using Torch.Server.ViewModels; using Torch.Server.ViewModels;
using Torch.Views;
namespace Torch.Server.Views namespace Torch.Server.Views
{ {
@@ -35,6 +37,17 @@ namespace Torch.Server.Views
InitializeComponent(); InitializeComponent();
} }
private void PluginManagerOnPropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs)
{
if (propertyChangedEventArgs.PropertyName == nameof(PluginManagerViewModel.SelectedPlugin))
{
if (((PluginManagerViewModel)DataContext).SelectedPlugin.Control is PropertyGrid)
PScroll.VerticalScrollBarVisibility = ScrollBarVisibility.Disabled;
else
PScroll.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
}
}
public void BindServer(ITorchServer server) public void BindServer(ITorchServer server)
{ {
_server = server; _server = server;
@@ -48,6 +61,7 @@ namespace Torch.Server.Views
_plugins = _server.Managers.GetManager<PluginManager>(); _plugins = _server.Managers.GetManager<PluginManager>();
var pluginManager = new PluginManagerViewModel(_plugins); var pluginManager = new PluginManagerViewModel(_plugins);
DataContext = pluginManager; DataContext = pluginManager;
pluginManager.PropertyChanged += PluginManagerOnPropertyChanged;
}); });
} }