在一个项目中,我实现了TwoPaneView,如下所示:
<TwoPaneView x:Name="LibraryTwoPaneView"> <TwoPaneView.Pane1> <Grid> <-- Grid content --> </Grid> </TwoPaneView.Pane1> <TwoPaneView.Pane2> <-- Pane content --> </TwoPaneView.Pane2> </TwoPaneView>
我的问题是,导航到库总是会重置ScrollViewer位置。导航到元素时,我习惯于设置ScrollViewer偏移量,但是我需要访问ScrollViewer。
请向我建议如何访问Pane1ScrollViewer。
[在一个项目中,我实现了TwoPaneView,如下所示:
虽然该解决方案符合我的需求,但如果您认为更合适,请提供其他方式。
using Windows.UI.Xaml.Controls;
namespace WacomNotesUwp.Controls
{
public class MyTwoPaneView : TwoPaneView
{
private ScrollViewer _pane1ScrollViewer;
public MyTwoPaneView()
{
this.DefaultStyleKey = typeof(MyTwoPaneView);
}
public double Pane1VerticalOffset
{
get
{
if (_pane1ScrollViewer == null)
{
return 0;
}
return _pane1ScrollViewer.VerticalOffset;
}
set
{
if (_pane1ScrollViewer == null)
{
return;
}
_pane1ScrollViewer.ChangeView(_pane1ScrollViewer.HorizontalOffset, value, _pane1ScrollViewer.ZoomFactor);
}
}
protected override void OnApplyTemplate()
{
base.OnApplyTemplate();
_pane1ScrollViewer = GetTemplateChild("PART_Pane1ScrollViewer") as ScrollViewer;
}
}
}