{A}{A2的}{A3的}TileView控制
TileView的控制可让你安排在瓷砖的时尚收集物品(瓷砖),其余的瓷砖之间变得活跃并显示在一个相对较大的区域。激活和停用的瓷砖是动画。这行为更不像控制,但它们是不同的。
{S0的}选择基
TileView介绍瓷砖的集合,并安排他们在不同的时尚。当它来呈现项目集合,ItemsControl是最好的选择,我们经常使用的控制,大部分都是从ItemsControl的ListView,TreeView的派生,或菜单和他们每个人都有自己的物品,以及。 TileView简单地介绍了收集,所以从ItemsControl派生,每个tile介绍的内容。很显然,我们可以去ContentControl的,所以我们可以提出的任何内容,但在未来可能出现的需求,瓷砖是从HeaderedContentControl派生。我的意思是由未来的需求??可能要显示一个头,或按钮来激活/停用瓷砖。小学(简单)的要求
控制的行为是众所周知的,并且被定义在它的引进部分。这里是清单的要求,以实现这一行为。瓷砖需要被安排在一个统一的方式,活跃的地区之一获得更多的空间。
鉴于字段必须保持积极瓷砖轨道,我们ActiveTile的。
需要按比例划分的之间的ActiveTile的和其他的空间布局机制,所有的其他瓷砖平分剩余的空间。瓷砖变得活跃负载,以及任何其他的瓷砖可以使用鼠标激活。
瓷砖必须意识到鼠标事件,通知的TileView,激活时,对于这一点,我们需要的Activated事件。激活和失活,应该是动画和流畅。 ActiveTile比较大,需要这样一个无效的瓷砖两个转变:ScallingTransform - 使较大,TranslateTransform可 - 将它移动到主动的地位。带进行动的话
让我们来看看如何以相反的顺序来实现这些要求。动画瓷砖
如前所述,两个转换都参与了激活四个不同性质的瓷砖瓷砖。要移动瓷砖,以主动的地位,TranslateTransform可被用来和它在它的X和Y值,使瓷砖,ScaleTransform使用和它的宽度和高度值的作用。下面的代码演示如何做到这一点。这仅仅是表示值和实际的实现,从不同的代表性。tile.RenderTransform = new TranslateTransform();
/* defining StoryBoard and animations */
Storyboard tileActivator = new Storyboard();
DoubleAnimation translateX =
new DoubleAnimation { From = 0, To = 10, Duration = TimeSpan.FromSeconds(1) };
/* Sets the target and the target property for the animation to operate */
Storyboard.SetTarget(translateX, tile);
Storyboard.SetTargetProperty(translateX,
new PropertyPath("(UIElement.RenderTransform).(TranslateTransform.X)"));
/* Adds the animation to the StoryBorad and initiate the activation */
tileActivator.Children.Add(translateX);
tileActivator.Begin();
同样的方法用于所有四个属性的瓷砖作出积极从无效状态。瓷砖激活通知
的TileView时,必须通知用户通过鼠标点击激活它,这个实现定义了一个事件激活,只是覆盖向下的鼠标事件,提高活性炭的事件。 TileView监听激活该事件,并设置作为新ActiveTile的发件人。{C}
TileView"听此事件,将其转换为平铺发件人,并激活它。
排列瓷砖tile.Activated += new RoutedEventHandler(OnTileActivated);
void OnTileActivated(object sender, RoutedEventArgs e)
{
ActivateTile(sender as Tile);
}
在WPF的布局过程中发生两次传球:MeasureOverride和ArrageOverride,这两种解释在很多文章。前让孩子知道它的可用空间,并询问孩子的空间,它会采取。和前给它可以利用的空间。{体C3}历史16/11/2011 - 初始后。30/11/2011 - 新增更新的TileState API,源文件和演示文件。
希望这有助于!!编码快乐!