在视图框中拖放图像

时间:2010-09-08 07:56:00

标签: wpf xaml

我有一个带有6个视图框的用户控件,每个视图框都有一个图像。我没有设置usercontrol的宽度或高度(甚至没有设置视图框)。首先,视图框是空的。我可以动态添加图像。

<Grid x:Name="DashBoardGrid" DockPanel.Dock="Right">
        <Grid.RowDefinitions>
            <RowDefinition Height="20"></RowDefinition>
            <RowDefinition Height="200*"></RowDefinition>
            <RowDefinition Height="10"></RowDefinition>
            <RowDefinition Height="200*"></RowDefinition>
            <RowDefinition Height="20"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="20"></ColumnDefinition>
            <ColumnDefinition Width="200*"></ColumnDefinition>
            <ColumnDefinition Width="10"></ColumnDefinition>
            <ColumnDefinition Width="200*"></ColumnDefinition>
            <ColumnDefinition Width="10"></ColumnDefinition>
            <ColumnDefinition Width="200*"></ColumnDefinition>
            <ColumnDefinition Width="20"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Border Grid.Row="1" Grid.Column="1">
            <DockPanel x:Name="dockPanel1" Margin="10,30,10,10" >
                <TextBlock x:Name="TitleTxtblk1" DockPanel.Dock="Top" FontSize="10pt" TextWrapping="Wrap">screen 1</TextBlock>
                <Viewbox x:Name="Viewbox1" MouseDown="Viewbox_MouseDown" MouseEnter="ScaleUp" MouseLeave="ScaleDown" 
                         PreviewMouseLeftButtonDown="DockPanel_PreviewMouseLeftButtonDown" PreviewMouseMove="dockPanel_MouseMove" 
                         Drop="dockPanel_Drop"  DragEnter="dockPanel_DragEnter" AllowDrop="True">

                </Viewbox>
            </DockPanel>
        </Border>
        <Border Grid.Row="1" Grid.Column="3" >
            <DockPanel x:Name="dockPanel2" Margin="10,30,10,10" >
                <TextBlock x:Name="TitleTxtblk2" DockPanel.Dock="Top" FontSize="10pt" TextWrapping="Wrap">screen 2</TextBlock>
                <Viewbox x:Name="Viewbox2" MouseDown="Viewbox_MouseDown" MouseEnter="ScaleUp" MouseLeave="ScaleDown" 
                         PreviewMouseLeftButtonDown="DockPanel_PreviewMouseLeftButtonDown" PreviewMouseMove="dockPanel_MouseMove" 
                         Drop="dockPanel_Drop"  DragEnter="dockPanel_DragEnter" AllowDrop="True">

                </Viewbox>
            </DockPanel>
        </Border>

我想将图像从一个视图框拖放到任何其他空视图框。但是当视图框为空时,它根本不可见。因为它没有高度或宽度。所以我无法将图像放在上面。

那么我需要做什么呢?当任何一个视图框都有图像时,所有视图框都有相同的高度和宽度?欢迎任何其他解决方案。

1 个答案:

答案 0 :(得分:0)

您可以在像Border这样的父控件中处理拖放事件。然后你可能需要在拖放方法中引用你的视图框。试试这个:

<Border Tag="{Binding ElementName=Viewbox2,Path=.} … >

并在你的拖放方法中

ViewBox v = (sender as Border).Tag as ViewBox;