2016-01-24 74 views
0

我是WPF中的新成员,我无法工作这个希望你们可以帮助解决这个问题。问题在于DesignerItemTemplate在项目控件中不起作用,我试图直接使用这个项目来拖动它。如果代码看起来凌乱,请原谅我。在此先感谢WPF Itemcontrol datatemplate

<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> 
+0

它应该看起来像这样:http://stackoverflow.com/a/34755874/1136211 – Clemens

+0

嗨克莱门斯,我跟着结构和所有的datatemplate现在不会显示。 –

回答

0

代替

Template="{Binding Mode=OneWay, Source={StaticResource DesignerItemTemplate}}" />
试试这个:

Template="{StaticResource DesignerItemTemplate}" />

如果这没有帮助,你可以请提供证明的问题稍微简单例子,说明你想才达到的。我不清楚你想要达到什么目的。

0

我发现问题了!它是继承到可观察对象的InspectionItemList集合对象。当我删除对象中的obeservable时,它完美地工作。感谢克莱门斯和Stackoverflow这个网站真的帮了我很多。