Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF自定义面板-拆分最终元素';在嵌板区域的端点和起点之间设置可视区域_Wpf_Xaml_Panel_Itemscontrol - Fatal编程技术网

WPF自定义面板-拆分最终元素';在嵌板区域的端点和起点之间设置可视区域

WPF自定义面板-拆分最终元素';在嵌板区域的端点和起点之间设置可视区域,wpf,xaml,panel,itemscontrol,Wpf,Xaml,Panel,Itemscontrol,我当前正在尝试编写一个控件,该控件将显示元素的集合,每个元素的开始时间都在0和1之间。我们期望的视觉效果类似于一个简单的时间轴 我已经创建了一个FrameworkElement,它将单个元素呈现为一行(这一行表示一个元素和下一个元素之间的转换,例如y(x)=x),我的意图是将此元素用作自定义ItemsControl的DataTemplate的一部分。通过水平翻转奇数元素并在面板中将它们对接在一起,应该可以看到元素之间连续的一系列过渡。我很难决定如何实现这个面板,特别是填充面板开始时可能出现的“死

我当前正在尝试编写一个控件,该控件将显示元素的集合,每个元素的开始时间都在0和1之间。我们期望的视觉效果类似于一个简单的时间轴

我已经创建了一个FrameworkElement,它将单个元素呈现为一行(这一行表示一个元素和下一个元素之间的转换,例如y(x)=x),我的意图是将此元素用作自定义ItemsControl的DataTemplate的一部分。通过水平翻转奇数元素并在面板中将它们对接在一起,应该可以看到元素之间连续的一系列过渡。我很难决定如何实现这个面板,特别是填充面板开始时可能出现的“死区”

我试图绘制的元素集合表示循环效果,但第一个元素可能不会在T=0时开始。因为效果本身循环,这意味着T=0和第一个效果的开始时间之间的间隔实际上由集合中最后一个元素的最后一部分组成。这意味着我必须找到一种方法来切碎面板中的最后一个视觉元素,使前面的部分位于面板的末尾,后面的部分位于面板的开头

另一种思考方法是使用圆/饼图-如果元素a从15%开始,元素B从50%开始,元素B将连续占据50-100%和0-15%的区域

我真的在寻找一种在WPF中可视化地完成这项工作的方法,而不是通过修改项目集合(例如,通过在0和第一个元素之间添加一个假的“padding”元素),因为这会在修改/选择项目等方面造成复杂的问题


有人建议将其绘制为0-1效果(删除第一个元素上的任何偏移,如果有),然后使用一对摄影机/视口重新创建偏移,这是我不熟悉的,似乎有点过火。有人能推荐一种更简单或更优雅的方法吗?

下面提出的3D XAML问题包含一些代码,这些代码经过一些修改后达到了我想要的效果。我将其设置为正交摄影机,并将MeshGeometry3D的位置和纹理坐标设置为从属属性: