0

私は C# WPF プロジェクトの適切なスライダーに取り組んできました。

スライダーの各セクションに異なる色を追加することで、プロセスのさまざまな部分を示す背景を持つスライダーを作成したいと考えました。さらに、小さなインジケーター (デフォルトの目盛りのように、カスタム形状と不規則な位置) を背景に追加したいと考えました。

これは、描画ブラシを作成し、対応する色の長方形を追加することで実現しました。これは問題なく動作しているように見えましたが、まだ小さな歪みが存在していたので、さらに調査したところ、次のことがわかりました。

Slider.ActualWidth を使用して、ウィジェット全体の幅を取得します。したがって、実際の「スライダー」部分を覆う背景を作成するには、ウィジェットから実際のスライダーまでの距離を意識する必要があります。(画像参照)

ここに画像の説明を入力

私は非常に小さなウィンドウで距離を測定し、フルスクリーンで、2 つのスクリーンに引き延ばしました。この距離は常に 5 ピクセルのようです。私はグーグルを試し、そのページでWPFが提供する情報を調べましたが、それを読んだか、これに関する情報がありません.

この距離が常に 5 ピクセルであることを確認できますか? そのような情報が保管されている場所はありますか?スライダー自体のサイズを決定する別の方法はありますか?

4

1 に答える 1

0

Slider テンプレートをいじっていないと仮定すると、ビジュアル ツリーをたどってトラックの ActualWidth を確認できます。

Border b = VisualTreeHelper.GetChild(slider, 0) as Border;
Grid g = VisualTreeHelper.GetChild(b, 0) as Grid;
Border track = VisualTreeHelper.GetChild(g, 2) as Border;
Console.WriteLine("Track ActualWidth: " + track.ActualWidth);
于 2015-01-21T13:42:24.190 に答える