在一个网格中插入滑块将使其扩展以填充可用空间,但出于以下原因,我更喜欢不使用网格:
我在一个UserControl中有一个TextBlock和一个Slider,该滑块具有弹簧加载功能并可进行抽动/接驳。必须显示当前值,因为用户无法依赖中性光标的位置。所以使用TextBlock。实现此自定义滑块的Orientation属性需要旋转两个组件,并调整它们的相对位置(左/右或上/下),这在网格中不容易实现(除非我错过了什么显而易见的东西),但在StackPanel中则很容易实现。
回复Aviad的评论:
Aviad,谢谢,我为带来困扰道歉;-)问题在标题中:如何在滑块位于StackPanel中时扩展滑块以填充可用空间?
这个用户控件:
我在一个UserControl中有一个TextBlock和一个Slider,该滑块具有弹簧加载功能并可进行抽动/接驳。必须显示当前值,因为用户无法依赖中性光标的位置。所以使用TextBlock。实现此自定义滑块的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 属性,在将封装用户控件设置为 "Vertical" 方向时显示两个控件垂直堆叠。