在a Slider中插入Grid会扩展它以填充可用空间,但我不希望使用网格,原因如下:
我有一个TextBlock和Slider在UserControl,滑块装有弹簧,做慢跑/穿梭; 必须显示当前值,因为用户不能依赖中性光标的位置,所以文本块.实现**Orientation**这个自定义滑块的属性需要旋转两个组件,并调整它们的相对位置(左/右或上/下),这对于网格来说并不容易(除非我错过了明显的东西)用一个StackPanel.
回应Aviad的评论
Aviad,谢谢,我为痛苦道歉;-)问题出现在标题中:当滑块位于StackPanel内时,如何扩展Slider以填充可用空间?
这个用户控件:
<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>
Run Code Online (Sandbox Code Playgroud)
即使在具有"*"宽度的行中,也不会在包含在网格中时展开.滑块根本没有长度.
一个解决方案是在下面的代码中用网格替换堆栈面板,但我不想使用网格,因为我需要使用堆栈面板的Orientation属性来显示封闭用户控件时垂直堆叠的控件在方向"垂直"中设置.