C# 有没有办法将Canvas子级设置为绑定并使Canvas.Left/Top/ZIndex工作?
我正在尝试编写带有绑定的儿童集合集的画布。它不能像其他控件那样完成,在互联网上有许多解决方案如何在WPF中完成,但是它们都不适用于UWP应用程序,而且可能性有限 我现在拥有的是ItemsControl,它被覆盖为Canvas控件,而不是默认的StackPanel。 这是我的密码:C# 有没有办法将Canvas子级设置为绑定并使Canvas.Left/Top/ZIndex工作?,c#,win-universal-app,uwp,xbind,C#,Win Universal App,Uwp,Xbind,我正在尝试编写带有绑定的儿童集合集的画布。它不能像其他控件那样完成,在互联网上有许多解决方案如何在WPF中完成,但是它们都不适用于UWP应用程序,而且可能性有限 我现在拥有的是ItemsControl,它被覆盖为Canvas控件,而不是默认的StackPanel。 这是我的密码: <ItemsControl x:Name="Railer" ItemsSource="{x:Bind ViewModel.ItemsToShowInCanvas, Mode=TwoWay, Converter={
<ItemsControl x:Name="Railer" ItemsSource="{x:Bind ViewModel.ItemsToShowInCanvas, Mode=TwoWay, Converter={StaticResource OtoO}}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas x:Name="MyCanvas"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="v:SubPanelViewModel">
<Grid>
<v:SubPanelView Width="100" Height="{Binding ActualHeight, ElementName=MyCanvas}"
ManipulationDelta="TextBlock_ManipulationDelta" ManipulationMode="All"
ManipulationCompleted="SubPanelView_ManipulationCompleted"
/>
<Grid.RenderTransform>
<TranslateTransform X="{Binding Left, Mode=OneWay}" Y="{Binding Top, Mode=OneWay}"/>
</Grid.RenderTransform>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
SubPanelView是我的自定义控件,datacontext是SubPanelView模型,它包含我绑定到视图的Left、Top和ZIndex属性。
使用RenderTransform是将我的元素设置在我想要的位置的一种方法,这是我通过搜索互联网找到的唯一方法,可以像使用Canvas.Left/Top属性一样定位元素
我不能做的是正确地设置ZIndex属性-不知道我在尝试什么。原因是我的项目不是画布的直接子项。我只是想在我操作它的时候把它放到前面
我应该放弃,用代码隐藏的方式做所有事情,还是有办法实现我想要的?另请参见。我已经在下面写给Rachel的内容是一样的——绑定在See中不起作用,这是一个解决方法。