【问题标题】:Trying to get HorizontalOffset, always returns 0试图获取 Horizo​​ntalOffset,总是返回 0
【发布时间】:2012-08-19 05:48:03
【问题描述】:

我正在使用 C#/xaml 为 Windows8 Metro 编写应用程序。

我有一个 Scrollviewer,想要获取水平偏移量。

我试过了:

private void ScrollViewer_ViewChanged_1(object sender, ScrollViewerViewChangedEventArgs e)
    {
        int i = Convert.ToInt32(GetValue(ScrollViewer.HorizontalOffsetProperty));
    }

但 i 始终为 0,尽管在调试器中显示偏移量为 221.09,我向下滚动!

迈克尔

【问题讨论】:

    标签: windows-8 windows-runtime scroll winrt-xaml dependency-properties


    【解决方案1】:

    如果您向下滚动 - 除非您水平滚动,否则您的水平偏移不会改变。

    也许您的事件处理程序不在 ScrollViewer 本身上,如果是这种情况 - 您需要在 SV 本身上调用 GetValue,例如

    private void ScrollViewer_ViewChanged_1(object sender, ScrollViewerViewChangedEventArgs e)
    {
        int i = Convert.ToInt32(myScrollViewer.GetValue(ScrollViewer.HorizontalOffsetProperty));
    }
    

    或者更好的是,只需这样做:

    private void ScrollViewer_ViewChanged_1(object sender, ScrollViewerViewChangedEventArgs e)
    {
        int i = Convert.ToInt32(myScrollViewer.HorizontalOffset);
    }
    

    【讨论】:

      猜你喜欢
      • 2019-01-24
      • 1970-01-01
      • 2014-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-17
      • 1970-01-01
      • 2015-09-27
      相关资源
      最近更新 更多