Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

WPFのGridSplitterで*でサイズ指定してるときにサイズの保存と復元をする方法

$
0
0

このお題で2個より多い時って言われて悩んだ結果です。

blog.okazuki.jp

サイズを*で指定すれば、GridSplitterは画面のサイズを超えてリサイズされないという特性をもちます。これでOK。じゃぁあとは保存と復元をどうやるかですが、こんな感じでいけます。

privatevoid Button_Click(object sender, RoutedEventArgs e)
{
    this.StoreWidths = this.LayoutRoot.ColumnDefinitions.Select(x => x.ActualWidth).ToArray();
}

privatevoid Button_Click_1(object sender, RoutedEventArgs e)
{
    for (int i = 0; i < this.StoreWidths.Length; i++)
    {
        if (i % 2 == 1)
        {
            // GridSplittercontinue;
        }

        this.LayoutRoot.ColumnDefinitions[i].Width = new GridLength(this.StoreWidths[i], GridUnitType.Star);
    }
}

今回は奇数個の列にGridSplitterがあるという想定で、そこの列以外を以前と同じ比率(ピクセル数とStar)で復元してやるとOK。保存時は素直にActualWidthをとっておけばOKです。


Viewing all articles
Browse latest Browse all 1387

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>