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

View File

@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
@@ -19,6 +20,7 @@ using Torch.API;
using Torch.API.Managers;
using Torch.Managers;
using Torch.Server.ViewModels;
using Torch.Views;
namespace Torch.Server.Views
{
@@ -35,6 +37,17 @@ namespace Torch.Server.Views
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)
{
_server = server;
@@ -48,6 +61,7 @@ namespace Torch.Server.Views
_plugins = _server.Managers.GetManager<PluginManager>();
var pluginManager = new PluginManagerViewModel(_plugins);
DataContext = pluginManager;
pluginManager.PropertyChanged += PluginManagerOnPropertyChanged;
});
}