Slider
aに aを挿入するGrid
と、使用可能なスペースを埋めるために拡張されますが、次の理由からグリッドを使用しないことをお勧めします。
私は aTextBlock
と aSlider
を持ってUserControl
います。スライダーはバネ仕掛けで、ジョグ/シャトルを行います。ユーザーはニュートラル カーソルの位置に依存できないため、現在の値を表示する必要があります。このカスタム スライダーのプロパティを実装するに**Orientation**
は、両方のコンポーネントを回転させ、相対的な位置を調整する必要があります (左/右または上/下)。とStackPanel
。
Aviad のコメントに対する応答
Aviad、ありがとう、お手数をおかけして申し訳ありません;-) 質問はタイトルにありました: スライダーが StackPanel 内にあるときに、スライダーを拡張して利用可能なスペースを埋める方法は?
このユーザー コントロール:
<UserControl x:Class="XXX.Preview.SelectionView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="auto" Width="auto">
<GroupBox Header="Selected">
<StackPanel Orientation="Horizontal">
<TextBlock/>
<Slider/>
</StackPanel>
</GroupBox>
</UserControl>
幅が「*」の行でも、グリッドに含まれている場合は拡張されません。スライダーの長さはまったくありません。
解決策は、以下のコードでスタック パネルをグリッドに置き換えることですが、グリッドを使用したくありません。これは、スタック パネルの Orientation プロパティを使用して、囲んでいるユーザー コントロールが垂直に積み重ねられた両方のコントロールを表示する必要があるためです。方向「垂直」に設定されています。