当用户更改Hub控件中的视图时,我需要更改AppBar的内容。
我在使用Pivot控件时的方式是侦听SelectionChanged事件并响应SelectIndex值。
但是,集线器只有一个SectionsInViewChanged事件,它返回多个部分的集合。通常,一个用户与之相互作用,然后是相邻的几乎不可见的部分。
所以我的问题是,如何判断哪个部分是当前突出显示给用户的部分(因此我可以相应地更改AppBar图标)?
答案 0 :(得分:13)
在Hub控制中,我们可以收听SectionsInViewChanged
事件。我们可以通过以下方式获得显示在屏幕上的HubSection:
var section = hubDemo.SectionsInView[0];
hubDemo
是我的Hub控件的名称。我们可以为每个HubSection设置Tag
属性。例如:
<Hub x:Name="hubDemo" SectionsInViewChanged="demoHub_SectionsInViewChanged">
<HubSection Tag="0" Header="Section1" Width="800"/>
<HubSection Tag="1" Header="Section2" Width="400"/>
<HubSection Tag="2" Header="Section3" Width="400"/>
<HubSection Tag="3" Header="Section4" Width="400"/>
<HubSection Tag="4" Header="Section5" Width="600"/>
</Hub>
因此我们可以通过标记更改AppBar内容:
private void demoHub_SectionsInViewChanged(object sender, SectionsInViewChangedEventArgs e)
{
var section = hubDemo.SectionsInView[0];
var tag = section.Tag.ToString();
switch (tag)
{
// Change your AppBar by tag
}
}