我对 Windows 8 现代 UI 应用程序相当陌生,我想知道如何翻转平铺图像(位于 GridView 内的应用程序内的图像)。
我有来自 Web 服务的列表形式的图像路径,并且希望使用该图像列表来翻转应用程序内的数据绑定项目背景。
我在网上找不到任何东西,所以我想我会在这里问。如果您知道从哪里开始,请告诉我。
谢谢!
我对 Windows 8 现代 UI 应用程序相当陌生,我想知道如何翻转平铺图像(位于 GridView 内的应用程序内的图像)。
我有来自 Web 服务的列表形式的图像路径,并且希望使用该图像列表来翻转应用程序内的数据绑定项目背景。
我在网上找不到任何东西,所以我想我会在这里问。如果您知道从哪里开始,请告诉我。
谢谢!
您可以使用接受您的图片列表的用户控件。并在您的用户控件中使用 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-->