0

画像に長方形を描画するオプションを追加したい。しかし、それは問題ではありません。それを機能させるには、WPF で Image Control の MouseDown、MouseUp、および MouseLeave イベントを使用する必要があります。

    <DockPanel Name="dockPanel1" Grid.ColumnSpan="2" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="15">
        <GroupBox Header="WebCam" Name="groupBox1" VerticalAlignment="Top" HorizontalAlignment="Left">
            <Grid>
                <Image HorizontalAlignment="Left" Margin="0" Name="pictureBoxMain" Stretch="Fill" VerticalAlignment="Top" MinHeight="240" MinWidth="320" StretchDirection="DownOnly" MaxWidth="960" MaxHeight="1200" MouseDown="pictureBoxMain_MouseDown" MouseUp="pictureBoxMain_MouseUp" MouseLeave="pictureBoxMain_MouseLeave" Panel.ZIndex="50" />
            </Grid>
        </GroupBox>
        <StackPanel HorizontalAlignment="Right" Name="stackPanel2" VerticalAlignment="Top" DockPanel.Dock="Right" Margin="15,0,0,0">
            <GroupBox Header="Controls" Name="groupBox2">
                <StackPanel Name="stackPanel1">
                    <Button Content="Start" Height="23" Name="buttonStartStop" Width="120" Margin="0" Click="buttonStartStop_Click" />
                    <Button Content="Video Properties" Height="23" Name="buttonVideoProperties" Width="120" Margin="0" Click="buttonVideoProperties_Click" />
                    <Button Content="WebCam Settings" Height="23" Name="buttonWebCamSettings" Width="120" Margin="0" Click="buttonWebCamSettings_Click" />
                </StackPanel>
            </GroupBox>
            <GroupBox Header="Motion Data" Name="groupBox3">
                <StackPanel>
                    <Label Content="Strength: 0" x:Name="labelMotionStrength" />
                    <Label Content="Count: 0" x:Name="timesWasMotionCounter" />
                </StackPanel>
            </GroupBox>
        </StackPanel>
    </DockPanel>

「pictureBoxMain」のイベントの話です。これらのイベントが発生しないのはなぜですか? 私は狂ったように自分の画像をクリックしていますが、まだ何もありません。これらのイベントを機能させるにはどうすればよいですか?

4

3 に答える 3

1

PreviewMouseDown をキャッチしようとしましたか?

To capture the same as MouseDown you need to use PreviewMouseDown event which is a tunneling event.
于 2012-09-13T20:24:40.657 に答える
1

エラーが見つかりました。何らかの理由で、私の画像ボックスのサイズは 0,0 でした。私はそれを伸ばしました、そして今それはうまくいきます。

于 2012-09-13T22:17:55.927 に答える
0

イベント ハンドラーが機能する前に、イメージの Source 属性をイメージ ファイルまたはバインディングに設定する必要があります。

<Image HorizontalAlignment="Left" Margin="0" Name="pictureBoxMain" Stretch="Fill" VerticalAlignment="Top" MinHeight="240" MinWidth="320" StretchDirection="DownOnly" MaxWidth="960" MaxHeight="1200" MouseDown="pictureBoxMain_MouseDown" MouseUp="pictureBoxMain_MouseUp" MouseLeave="pictureBoxMain_MouseLeave" Source="test_image.png" Panel.ZIndex="50" />
于 2012-09-13T20:26:21.577 に答える