4

ユーザーがズーム/スクロールできる画像があります。別のレイヤーにいくつかの長方形/円を描きたい(たとえば、写真で識別された各人の顔に円を描く)。

長方形の位置は画像を基準にしています。

このようなオーバーレイを作成するにはどうすればよいですか?

4

2 に答える 2

7

簡単な方法は、Canvas を使用してキャンバスの background プロパティを写真に設定し、その上に円または長方形を配置し、Canvas.Left および .Top プロパティを使用して配置することです。

    <Canvas x:Name="myCanvas">
        <Canvas.Background>
            <ImageBrush ImageSource="c:\photo.bmp"/>
        </Canvas.Background>
        <Image Canvas.Top="20" Canvas.Left="20" Height="20" Width="20" Source="c:\circle.bmp"/>
    </Canvas>
于 2009-11-24T15:58:11.163 に答える
5

私は似たようなことをすることができました:

  • 画像を背景に設定
  • ItemsControlその上に透明を置きます
  • ItemsControl.ItemsPanelに設定Canvas
  • ドラッグ操作用のハンドラを作成

コードスニペット:

  <ItemsControl x:Name="overlayItemsControl" 
        Background="Transparent"  
        ItemsSource="{Binding Path=Blocks}"
        Width="{Binding ElementName=imageControl, Path=Width}"
        Height="{Binding ElementName=imageControl, Path=Height}"
        ItemContainerStyle="{StaticResource rectStyle}"
        PreviewMouseMove="ItemsControl_PreviewMouseMove"
        PreviewMouseDown="ItemsControl_PreviewMouseDown"
        PreviewMouseUp="ItemsControl_PreviewMouseUp"
        PreviewKeyDown="ItemsControl_PreviewKeyDown">

        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <Canvas IsItemsHost="True" />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
   ....
</ItemsControl>
于 2009-04-13T12:59:05.133 に答える