0

我是 WPF 的新手,我无法解决这个问题,希望你们能对此有所帮助。问题是DesignerItemTemplate当它在项目控件中时它不起作用,我尝试将它直接用于一个我可以拖动它的项目。如果代码看起来很乱,请原谅我。提前致谢

<UserControl.Resources>
    <ControlTemplate x:Key="MoveThumbTemplate" TargetType="{x:Type s:MoveThumb}">
        <Rectangle Fill="Transparent" />
    </ControlTemplate>

    <!-- ResizeDecorator Template -->
    <ControlTemplate x:Key="ResizeDecoratorTemplate" TargetType="{x:Type Control}">
        <Grid>
            <StackPanel VerticalAlignment="Top" HorizontalAlignment="Left" Height="15" Width="130" Margin="0,-15,-81,0" IsHitTestVisible="False">
                <TextBox Text="R101" BorderBrush="Transparent" IsHitTestVisible="False"  Background="Transparent" Height="17" FontSize="7" Foreground="#FF6DF90C"   VerticalContentAlignment="Stretch" MinHeight="1"  HorizontalAlignment="Stretch" CharacterCasing="Upper"   />
            </StackPanel>

            <s:ResizeThumb Height="1" Cursor="SizeNS"  BorderBrush="#FF160DCD" BorderThickness="1"
                           VerticalAlignment="Top" HorizontalAlignment="Stretch"/>
            <s:ResizeThumb Width="1" Cursor="SizeWE"   BorderBrush="#FF160DCD" BorderThickness="1"
                           VerticalAlignment="Stretch" HorizontalAlignment="Left"/>
            <s:ResizeThumb Width="1" Cursor="SizeWE"    BorderBrush="#FF160DCD" BorderThickness="1"
                           VerticalAlignment="Stretch" HorizontalAlignment="Right"/>
            <s:ResizeThumb Height="1" Cursor="SizeNS"    BorderBrush="#FF160DCD" BorderThickness="1"
                           VerticalAlignment="Bottom" HorizontalAlignment="Stretch"/>
            <s:ResizeThumb Width="2" Height="2" Cursor="SizeNWSE"   BorderBrush="#FF81F110" BorderThickness="1"
                           VerticalAlignment="Top" HorizontalAlignment="Left"/>
            <s:ResizeThumb Width="2" Height="2" Cursor="SizeNESW"   BorderBrush="#FF81F110" BorderThickness="1"
                           VerticalAlignment="Top" HorizontalAlignment="Right"/>
            <s:ResizeThumb Width="2" Height="2" Cursor="SizeNESW"   BorderBrush="#FF81F110" BorderThickness="1"
                           VerticalAlignment="Bottom" HorizontalAlignment="Left"/>
            <s:ResizeThumb Width="2" Height="2" Cursor="SizeNWSE"  BorderBrush="#FF81F110" BorderThickness="1"
                           VerticalAlignment="Bottom" HorizontalAlignment="Right"/>
        </Grid>
    </ControlTemplate>

    <!-- Designer Item Template-->
    <ControlTemplate x:Key="DesignerItemTemplate" TargetType="{x:Type ContentControl}">
        <Grid DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}">
            <s:MoveThumb Template="{StaticResource MoveThumbTemplate}" Cursor="SizeAll"/>
            <Control Template="{StaticResource ResizeDecoratorTemplate}"/>
            <ContentPresenter Content="{TemplateBinding Content}"/>
        </Grid>
    </ControlTemplate>
</UserControl.Resources>

<panZoom:PanAndZoomViewer  x:Name="panZoomViewer" Margin="2,2,2,45" ClipToBounds="True">
    <!--<Canvas>-->
    <Canvas x:Name="cnvImage" Background="Transparent">
        <Image x:Name="imgCurrent" VerticalAlignment="Center" HorizontalAlignment="Center" />
        <ItemsControl ItemsSource="{Binding InspectionItemList,Mode=TwoWay }">
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <ContentControl Canvas.Top="{Binding Y,Mode=TwoWay}" Canvas.Left="{Binding X,Mode=TwoWay }" 
                                    Width="{Binding Width,Mode=TwoWay}" MinWidth="1" 
                                    Height="{Binding Height,Mode=TwoWay}"   MinHeight="1"  
                                    Template="{Binding Mode=OneWay, Source={StaticResource DesignerItemTemplate}}" />
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </Canvas>
    <!--</Canvas>-->
</panZoom:PanAndZoomViewer>
4

2 回答 2

0

我发现了问题!继承到可观察对象的是 InspectionItemList 集合对象。当我删除对象中的可观察对象时,它可以正常工作。感谢 Clemens 和 Stackoverflow,这个网站对我帮助很大。

于 2016-03-07T00:05:39.630 回答
0

代替

Template="{绑定模​​式=OneWay, Source={StaticResource DesignerItemTemplate}}" />
尝试这个:

模板="{StaticResource DesignerItemTemplate}" />

如果这没有帮助,您能否提供一个更简单的示例来演示问题并描述您想要实现的目标。我不清楚你想要达到什么目标。

于 2016-01-25T07:55:16.470 回答