wpf mvvm ImageSelector

У меня есть один проект с mvvm. Я загружаю изображение в формате.jpg, нажимая кнопку загрузки в моем проекте. Я хочу выделить часть этого изображения, переместить его и изменить его размер, например, рисовать, щелкнув инструмент прямоугольник в моем меню, но я не знаю, как

посмотреть код:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="240*" />
        <RowDefinition Height="60*" />
    </Grid.RowDefinitions>
    <StackPanel Orientation="Horizontal" Grid.Row="0">
        <Image Source="{Binding MyImage.Source}" ></Image>
    </StackPanel>
    <StackPanel Orientation="Horizontal" Grid.Row="1">
        <Button Width="70" Height="40" Command="{Binding LoadCommand}">Load Image</Button>
    </StackPanel>
</Grid>

код модели представления:

 #region Property
    private Image _MyImage;
    public Image MyImage
    {
        get
        {
            return _MyImage;
        }
        set
        {
            _MyImage = value;
            OnPropertyChanged("MyImage");
        }
    }
    #endregion

    #region Constructor
    public ImageViewModel()
    {
        _MyImage = new Image();
    }
    #endregion

    #region Commands
    RelayCommand _LoadCommand;
    public ICommand LoadCommand
    {
        get
        {
            if (_LoadCommand == null)
            {
                _LoadCommand = new RelayCommand(param => LoadCommandExecute());
            }
            return _LoadCommand;
        }
    }
    #endregion

    #region Methods
    private void LoadCommandExecute()
    {

        OpenFileDialog op = new OpenFileDialog();
        op.Title = "Select a picture";
        op.Filter = "All supported graphics|*.jpg;*.jpeg;*.png|" +
            "JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|" +
            "Portable Network Graphic (*.png)|*.png";
        if (op.ShowDialog() == true)
        {
            MyImage.Source = new BitmapImage(new Uri(op.FileName));
        }
    }
    #endregion

1 ответ

Реализация Drag Selection - один из способов сделать это. После того, как вы применили выделение с помощью перетаскивания, проверьте положение прямоугольника выделения по отношению к изображению, обрежьте эту часть изображения и разрешите ее изменение любым удобным вам способом.

Если у вас возникнут проблемы в пути, опубликуйте некоторый код, и мы постараемся решить его.

Другие вопросы по тегам