Wpf 访问在模板中具有setter的属性
我有一个画布,它可以拍摄多种类型的对象,并在特定位置显示它们。 大多数对象都有一个由“Setter”设置的Location属性,它非常有效 我有一个复杂的对象——由4个位图组合而成。 我希望能够使用canvas.top和canvas.left设置每个位图位置,但不使用setter中的位置(它们没有),而是使用它们自己的位置属性 这是代码 我的问题是WPF完全忽略我的canvas.top和canvas.left赋值,即使我使用数字而不绑定,也不会发生任何事情 有什么问题吗 这是我目前的代码。 ComplexBitmap在0,0中绘制自身,而不是在预期的位置Wpf 访问在模板中具有setter的属性,wpf,Wpf,我有一个画布,它可以拍摄多种类型的对象,并在特定位置显示它们。 大多数对象都有一个由“Setter”设置的Location属性,它非常有效 我有一个复杂的对象——由4个位图组合而成。 我希望能够使用canvas.top和canvas.left设置每个位图位置,但不使用setter中的位置(它们没有),而是使用它们自己的位置属性 这是代码 我的问题是WPF完全忽略我的canvas.top和canvas.left赋值,即使我使用数字而不绑定,也不会发生任何事情 有什么问题吗 这是我目前的代码。 Co
<ItemsControl Name="itemtest" ItemsSource="{Binding}" Height="576" Background="#FFB0B4B4" Width="704">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<local2:DragCanvas x:Name="canvas1" AllowDragging="true" AllowDragOutOfView="False" Width="704" Height="576" Background="#3AC2DED4"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Left" Value="{Binding Path=Location.X, Mode=TwoWay}"/>
<Setter Property="Canvas.Top" Value="{Binding Path=Location.Y, Mode=TwoWay}"/>
<Setter Property ="Visibility" Value="{Binding Path= ShowOnDemo, Converter={StaticResource BooleanToVisibilityConverter}}" />
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplateSelector>
<local:CustomTemplateSelector>
.
<local:CustomTemplateSelector.BitmapTemplate>
<DataTemplate>
<StackPanel>
<Image Source="{Binding Path=Bitmaps/myBitmap}" Canvas.Left="{Binding Path=Location.X, Mode=TwoWay}" Canvas.Top="{Binding Path=Location.Y, Mode=TwoWay}" />
</StackPanel>
</DataTemplate>
</local:CustomTemplateSelector.BitmapTemplate>
.
<local:CustomTemplateSelector.ComplexBitmapTemplate >
<DataTemplate>
<Grid>
<StackPanel>
<Image Source="{Binding Path=TopLeftBitmapObj.myBitmap}" Canvas.Left="400" Canvas.Top="400" /> <-- Here I've tried to bind to another property, but even the 400 didn't work -->
</StackPanel>
<-- Here comes 3 more bitmaps -->
</Grid>
</DataTemplate>
</local:CustomTemplateSelector.ComplexBitmapTemplate>
</local:CustomTemplateSelector>
</ItemsControl.ItemTemplateSelector>
</ItemsControl>
.
.
请检查以下内容:
听起来您的项目可能不会立即放置在画布上?您可以发布从Snoop中获取的可视树的屏幕截图吗?同时仔细检查您的源绑定路径。@raptor-源代码如图片所示是正常的,但在0,0而不是400400上…+1对于HighCore,似乎
图像
不是画布的直接子级。您是否尝试过将画布绑定与StackPanel
和Datagrid