48 lines
2.1 KiB
C#
48 lines
2.1 KiB
C#
using DTS.Common.Controls;
|
|
using DTS.Common.Interface.RegionOfInterest.RegionOfInterestChannels;
|
|
using DTS.Common.Utils;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Media;
|
|
|
|
namespace RegionOfInterestChannels
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for RegionOfInterestChannelsView.xaml
|
|
/// </summary>
|
|
public partial class RegionOfInterestChannelsView : IRegionOfInterestChannelsView
|
|
{
|
|
public RegionOfInterestChannelsView()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void GridViewColumnHeader_OnClick(object sender, RoutedEventArgs e)
|
|
{
|
|
var vm = (IRegionOfInterestChannelsViewModel)DataContext;
|
|
var columnTag = (sender as GridViewColumnHeaderSearchable)?.Tag ?? Utils.FindChild<GridViewColumnHeaderSearchable>((DependencyObject)e.OriginalSource, null)?.Tag ??
|
|
(sender as GridViewColumnHeaderSelectable)?.Tag ?? Utils.FindChild<GridViewColumnHeaderSelectable>((DependencyObject)e.OriginalSource, null)?.Tag;
|
|
vm?.Sort(columnTag, true);
|
|
}
|
|
|
|
private void TextBlock_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
if (!(sender is TextBlock tb)) return;
|
|
if (!((tb.TemplatedParent as ContentPresenter)?.Parent is GridViewRowPresenter presenter)) return;
|
|
for (int i = 0; i < presenter.Columns.Count; i++)
|
|
{
|
|
if (!(VisualTreeHelper.GetChild(presenter, i) is ContentPresenter templated) ||
|
|
!templated.Equals((ContentPresenter)tb.TemplatedParent)) continue;
|
|
//found our column
|
|
if (presenter.Columns[i].ActualWidth < tb.ActualWidth && double.IsNaN(presenter.Columns[i].Width))
|
|
{
|
|
//now that bindings/templates are applied, control width > column width
|
|
//force remeasure
|
|
presenter.Columns[i].Width = tb.ActualWidth;
|
|
presenter.Columns[i].Width = double.NaN;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
} |