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 - один из способов сделать это. После того, как вы применили выделение с помощью перетаскивания, проверьте положение прямоугольника выделения по отношению к изображению, обрежьте эту часть изображения и разрешите ее изменение любым удобным вам способом.
Если у вас возникнут проблемы в пути, опубликуйте некоторый код, и мы постараемся решить его.