在silverlight中实现类似ancher的html是一种简单的方法吗?

在silverlight中实现类似ancher的html是一种简单的方法吗?,silverlight,Silverlight,我想实现一个带有按钮的导航面板来控制滚动查看器的滚动条位置。按钮效果就像html页面中的ancher。如果单击一个按钮,则内容将滚动到滚动查看器中的相对位置。这是一种简单的实现方法吗 -------------------------------------------- |Button0 | Button 0 relative content | | |Button1 | ... | | |Button2 | ...

我想实现一个带有按钮的导航面板来控制滚动查看器的滚动条位置。按钮效果就像html页面中的ancher。如果单击一个按钮,则内容将滚动到滚动查看器中的相对位置。这是一种简单的实现方法吗

--------------------------------------------
|Button0 |   Button 0 relative content    | |
|Button1 |   ...                          | |
|Button2 |   ...                          |-|
|---------   ...                          |||
|                                         |||  <--the scrollbar
|            ...                          |-|
|            Button 1 relative content    | |
|            ...                          | |
|            ...                          | |
|            Button 2 relative content    | |
---------------------------------------------
--------------------------------------------
|按钮0 |按钮0相对内容||
|按钮1 |……||
|按钮2 ||-|
|---------   ...                          |||

|| | |这有点棘手,因为它没有内置的实用函数(据我所知)。 目前,我可以想到两个可行的解决方案:

第一种解决方案:通过 类似这样(未经测试,未进行任何脑力劳动):


第二种解决方案(不推荐):使用列表框显示您的内容,然后致电

感谢您的建议。我更喜欢选择第一个解决方案,第二个解决方案必须添加额外的逻辑来帮助平滑滚动。顺便说一句,有一个叫做scrollViewer的方法。ScrollIntoView(内容)的工作原理与listbox.ScrollIntoView方法相同。但我不使用它,因为它并不总是让内容滚动到视图的顶部。要完成此要求,必须将代码更改为Point offset=generaltransform.Transform(新点(0,scrollViewer.VerticalOffset));再次感谢@二新:如果我的回答提供了导致您的解决方案的信息,请将其标记为已接受。
private void GotoContent3()
{
    var generaltransform = m_content3.TransformToVisual( m_scrollviewer);
    Point offset = generaltransform.Transform( new Point( 0, 0 ) );
    m_scrollviewer.ScrollToVerticalOffset( offset.Y );
}