我们有一个UserControl
显示枚举的所有可能值,表示为RadioButton
aListBox
以选择其中一个。当此控件ScrollViewer
与其他控件(例如文本框或其他控件)一起位于内部时,并且您尝试通过鼠标滚轮滚动ScrollViewer
时,当鼠标光标位于 EnumBox 上方时,它将不会滚动表单。
这是它在 UI 中的样子:
为了演示,RadioButton
s 有黄色背景,WrapPanel
' 的背景是绿色的。当鼠标光标位于彩色区域内(例如在 内WrapPanel
)时,通过鼠标滚轮滚动无效。
EnumBox 的模板如下所示:
<UserControl.Template>
<ControlTemplate TargetType="{x:Type clientsWpf:EnumBox}">
<StackPanel>
<GroupBox Header="{Binding Header, RelativeSource={RelativeSource AncestorType={x:Type clientsWpf:EnumBox}}}" IsReadOnly="{Binding IsReadOnly, RelativeSource={RelativeSource AncestorType={x:Type clientsWpf:EnumBox}}}">
<Border x:Name="InvalidBorder" BorderBrush="Red" BorderThickness="0" >
<ListBox x:Name="PART_ListBox" HorizontalAlignment="Left" KeyboardNavigation.DirectionalNavigation="Cycle" Background="Transparent" BorderThickness="0" SelectedValuePath="." SelectedValue="{Binding Path=SelectedValue, RelativeSource={RelativeSource AncestorType={x:Type clientsWpf:EnumBox}}}" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" Background="Green"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.Resources>
<Style x:Key="{x:Type ListBoxItem}" TargetType="{x:Type ListBoxItem}" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border Background="Transparent" Background="Yellow">
<RadioButton Margin="3" Focusable="False" Content="{TemplateBinding ContentControl.Content,Converter={StaticResource enumValueDescriptionConverter}}"
IsChecked="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}},Path=IsSelected}" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.Resources>
</ListBox>
</Border>
</GroupBox>
</StackPanel>
</ControlTemplate>
</UserControl.Template>
我试图在,和it上设置ScrollViewer.VerticalScrollBarVisibility="Disabled"
and没有效果。ScrollViewer.CanContentScroll="False"
ListBox
WrapPanel
RadioButton
Border
我试图ScrollBar.Scroll="WrapPanel_Scroll"
在所有四个控件上捕捉事件,但没有一个被击中。
我试图设置SelectiveScrollingGrid.SelectiveScrollingOrientation="None"
没有RadioButton
任何效果。
有没有人知道是什么阻止了 UI 中的滚动?
说清楚:这不是在 EnumBox 内滚动,而是滚动整个表单。