2

我对 Windows 8 现代 UI 应用程序相当陌生,我想知道如何翻转平铺图像(位于 GridView 内的应用程序内的图像)。

我有来自 Web 服务的列表形式的图像路径,并且希望使用该图像列表来翻转应用程序内的数据绑定项目背景。

我在网上找不到任何东西,所以我想我会在这里问。如果您知道从哪里开始,请告诉我。

谢谢!

4

1 回答 1

0

您可以使用接受您的图片列表的用户控件。并在您的用户控件中使用 DispatcherTimer 每 X 秒切换/更改您的图片。

样本 :

     public sealed partial class CustomFlip
    {
        #region Properties

        private readonly TimeSpan _delay = new TimeSpan(0, 0, 1);
        private readonly DispatcherTimer _dt;

        #endregion Properties

        #region Control Properties

        public IList<Uri> Pictures
        {
            get { return (IList<Uri>)GetValue(PicturesProperty); }
            set { SetValue(PicturesProperty, value); }
        }

        public static readonly DependencyProperty PicturesProperty
            = DependencyProperty.Register("Pictures", typeof(IList<Uri>), typeof(CustomFlip), null);

        #endregion Control Properties

        public CustomFlip()
        {
            InitializeComponent();
            Loaded += CLoaded;
            _dt = new DispatcherTimer { Interval = _delay };
            _dt.Tick += Refresh;

            Unloaded += CUnloaded;
        }

        private void CLoaded(object sender, RoutedEventArgs e)
        {
            _dt.Start();
        }

        private void CUnloaded(object sender, RoutedEventArgs e)
        {
            _dt.Stop();
        }

        private void Refresh(object sender, object e)
        {
            //Image name in your xaml.
            foo.Source = //Random Uri from Pictures.
//Sample this.MyImage.Source = new BitmapImage(new Uri("/MyNameSpace;images/someimage.png", UriKind.Relative));
        }

        #region Methods

        public void StopRefresh()
        {
            _dt.Stop();
        }

        public void ReStartRefresh()
        {
            if (_dt == null)
                return;

            _dt.Start();
        }

        #endregion Methods
    }

而你 xaml :

<UserControl
    x:Name="root"
    x:Class="Foo"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300"
    d:DesignWidth="400">
        <Grid>
        <Image x:Name="Image"/>
        </Grid>

</UserControl>

问候。

编辑添加 xaml 示例:

xmlns:flip="using:Project.CustomControls.CustomFlip" <!--FlipLocation-->
<flip:ControlName Pictures={Binding YourList}/> <!--Hw to use it-->
于 2012-11-21T07:28:58.277 回答