0

私はWPFが初めてで、これを解決することはできません。皆さんがこれについて助けてくれることを願っています. 問題はDesignerItemTemplate、アイテム コントロールにあるときに が機能しないことです。これをドラッグできる 1 つのアイテムに直接使用しようとしました。コードが乱雑に見える場合はご容赦ください。前もって感謝します

<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="{Binding Mode=OneWay, Source={StaticResource DesignerItemTemplate}}" />
これを試して:

Template="{StaticResource DesignerItemTemplate}" />

これが役に立たない場合は、問題を示し、達成したいことを説明するもう少し簡単な例を提供してください。あなたが達成したいことは私には明確ではありません。

于 2016-01-25T07:55:16.470 に答える