加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-runtime – 如何判断选择了哪个HubSection

发布时间:2020-12-13 22:27:13 所属栏目:Windows 来源:网络整理
导读:当用户更改Hub控件中的视图时,我需要更改AppBar的内容. 我在使用Pivot控件时执行此操作的方式是侦听SelectionChanged事件并响应SelectIndex值. 但是,集线器只有一个SectionsInViewChanged事件,它返回多个部分的集合.通常,一个用户与相邻的,几乎不可见的部分
当用户更改Hub控件中的视图时,我需要更改AppBar的内容.

我在使用Pivot控件时执行此操作的方式是侦听SelectionChanged事件并响应SelectIndex值.

但是,集线器只有一个SectionsInViewChanged事件,它返回多个部分的集合.通常,一个用户与相邻的,几乎不可见的部分进行交互.

所以我的问题是,我如何判断哪个部分是当前显着向用户显示的部分(因此我可以相应地更改AppBar图标)?

解决方法

在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
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读