如何使用 wpf 移动另一个 UserControl 中的滚动元素?
How do I move the scroll element in another UserControl with wpf?
如何将另一个用户控件中的元素绑定到命令目标?
这是主要的xaml
<Grid>
<StackPanel>
<Button Height="200" x:Name="PageUpButton" FontFamily="Marlett" FontSize="40" Content="5" Command="{x:Static ScrollBar.PageUpCommand}" CommandTarget="{Binding ElementName=scrollViewerActive}"/>
<local:posMenuChild x:Name="PosMenuChild"/>
<Button Height="200" x:Name="PageDownButton" FontFamily="Marlett" FontSize="40" Content="6" Command="{x:Static ScrollBar.PageDownCommand}" CommandTarget="{Binding ElementName=ScrollViewerActive }"/>
</StackPanel>
</Grid>
我应该指定什么作为 CommandTarget?
如何使用顶部的按钮滚动以下 UserControl 中的元素 Window?
这是用户控件
<Grid Height="200">
<WrapPanel Orientation="Vertical" Height="200">
<ScrollViewer VerticalScrollBarVisibility="Hidden" Name="ScrollViewerActive" CanContentScroll="True" >
<StackPanel>
<TextBlock Text="Test1" FontSize="35"/>
<TextBlock Text="Test2" FontSize="35"/>
<TextBlock Text="Test3" FontSize="35"/>
<TextBlock Text="Test4" FontSize="35"/>
<TextBlock Text="Test5" FontSize="35"/>
<TextBlock Text="Test6" FontSize="35"/>
</StackPanel>
</ScrollViewer>
</WrapPanel>
</Grid>
使用以下内容修改您的用户控件的 code-behind:
首先,添加一个DependencyProperty
绑定到ScrollViewer
类型
public static readonly DependencyProperty ScrollTargetProperty = DependencyProperty.RegisterAttached(
"ScrollTarget", typeof(ScrollViewer), typeof(UserControl1), new PropertyMetadata(null));
public static void SetScrollTarget(DependencyObject element, ScrollViewer value)
{
element.SetValue(ScrollTargetProperty, value);
}
public static ScrollViewer GetScrollTarget(DependencyObject element)
{
return (ScrollViewer)element.GetValue(ScrollTargetProperty);
}
不要忘记将 UserControl1
更改为用户控件的 class 名称。
然后,将此 属性 设置为 ScrollViewerActive
(我在控件的构造函数中完成)
SetScrollTarget(this, ScrollViewerActive);
现在你可以像这样绑定它
<Button Command="{x:Static ScrollBar.PageUpCommand}" CommandTarget="{Binding Path=ScrollTarget, ElementName=PosMenuChild, Mode=OneWay}"/>
如何将另一个用户控件中的元素绑定到命令目标?
这是主要的xaml
<Grid>
<StackPanel>
<Button Height="200" x:Name="PageUpButton" FontFamily="Marlett" FontSize="40" Content="5" Command="{x:Static ScrollBar.PageUpCommand}" CommandTarget="{Binding ElementName=scrollViewerActive}"/>
<local:posMenuChild x:Name="PosMenuChild"/>
<Button Height="200" x:Name="PageDownButton" FontFamily="Marlett" FontSize="40" Content="6" Command="{x:Static ScrollBar.PageDownCommand}" CommandTarget="{Binding ElementName=ScrollViewerActive }"/>
</StackPanel>
</Grid>
我应该指定什么作为 CommandTarget? 如何使用顶部的按钮滚动以下 UserControl 中的元素 Window?
这是用户控件
<Grid Height="200">
<WrapPanel Orientation="Vertical" Height="200">
<ScrollViewer VerticalScrollBarVisibility="Hidden" Name="ScrollViewerActive" CanContentScroll="True" >
<StackPanel>
<TextBlock Text="Test1" FontSize="35"/>
<TextBlock Text="Test2" FontSize="35"/>
<TextBlock Text="Test3" FontSize="35"/>
<TextBlock Text="Test4" FontSize="35"/>
<TextBlock Text="Test5" FontSize="35"/>
<TextBlock Text="Test6" FontSize="35"/>
</StackPanel>
</ScrollViewer>
</WrapPanel>
</Grid>
使用以下内容修改您的用户控件的 code-behind:
首先,添加一个DependencyProperty
绑定到ScrollViewer
类型
public static readonly DependencyProperty ScrollTargetProperty = DependencyProperty.RegisterAttached(
"ScrollTarget", typeof(ScrollViewer), typeof(UserControl1), new PropertyMetadata(null));
public static void SetScrollTarget(DependencyObject element, ScrollViewer value)
{
element.SetValue(ScrollTargetProperty, value);
}
public static ScrollViewer GetScrollTarget(DependencyObject element)
{
return (ScrollViewer)element.GetValue(ScrollTargetProperty);
}
不要忘记将 UserControl1
更改为用户控件的 class 名称。
然后,将此 属性 设置为 ScrollViewerActive
(我在控件的构造函数中完成)
SetScrollTarget(this, ScrollViewerActive);
现在你可以像这样绑定它
<Button Command="{x:Static ScrollBar.PageUpCommand}" CommandTarget="{Binding Path=ScrollTarget, ElementName=PosMenuChild, Mode=OneWay}"/>