集线器控制背景有时不会被错误地绘制或绘制

时间:2014-10-02 12:55:25

标签: c# xaml windows-runtime windows-phone-8.1 win-universal-app

我有一个Windows Phone 8.1(WinRT)应用程序,它有一个Page,在该页面上有一个Hub控件。我的目的是将图像设置为Hub的背景,因为我喜欢在通过HubSections滑动时的炫酷动画。

我使用以下XAML执行此操作:

<Hub>
    <Hub.Background>
        <ImageBrush
            ImageSource="{Binding Images.Fanart}"
            Stretch="UniformToFill"
            Opacity="0.3">
        </ImageBrush>
    </Hub.Background>

    <!-- here come some hub sections with content -->
</Hub>

如您所见,Background设置为ImageBrush。这个画笔的ImageSource属性绑定到Images.Fanart,它是我数据模型中的ImageSource类:

public Images
{
    private ImageSource _fanart;

    public ImageSource Fanart
    {
        get { return _fanart; }
        private set
        {
            if (_fanart != value)
            {
                _fanart = value;
                NotifyPropertyChanged(); // Note: notification works properly
            }
        }
    }
}

现在,我的目的是从网上下载图片并将其设置为Fanart:

Fanart = new BitmapImage(new Uri("{the_image_url}", UriKind.Absolute));

当页面导航到(OnNavigatedTo事件)时,完成此下载和设置。

现在实际问题:

  • 有时这样可以正常工作并且在浏览轮毂部分时加载图像并正确显示行为/动画。
  • 但是,有时图像根本没有显示,尽管调试显示Fanart属性已刷新。
  • 有时,会显示图像,但会以错误的方式显示动画。它没有以全宽绘制,似乎它的左边距没有映射到第一个中心部分的左边距。

这很烦人,我想知道我做错了什么。也许这也是Hub Control中的一个错误?

0 个答案:

没有答案