Удалил свой старый вопрос, чтобы задать более конкретный. Я использую код с http://www.c-sharpcorner.com/uploadfile/mahesh/image-viewer-in-wpf/ в качестве основы. Позволяет пользователю найти файл изображения для открытия и отображения. Я хочу отобразить изображение, а затем позволить пользователю делать на нем отметки. Я решил, что хочу использовать холст для этого. Прямо сейчас я не могу понять, как получить выбранное пользователем изображение в качестве фона. Я получаю сообщение об ошибке: «System.Windows.Shapes.Path не содержит определения для« фона », и не может быть найден метод расширения« фон », принимающий первый аргумент типа« System.Windows.Shapes.Path ». ..." из строки, в которой говорится "canvas1.Background = кисть;". Я искал способы установить фон холста, некоторые из которых включали просто использование кода xaml, но затем я получаю другие ошибки.
XAML:
<Window x:Class="CanvasStuff.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Main Window" Height="409" Width="574">
<Grid >
<Label Content="Image" Height="32" HorizontalAlignment="Left" Margin="11,10,0,0"
Name="selectedFileName" VerticalAlignment="Top" Width="393"
Background="LightGray" BorderBrush="Gray" BorderThickness="1"/>
<Button Content="Browse File" Height="34" HorizontalAlignment="Left" Margin="410,8,0,0"
Name="BrowseButton" VerticalAlignment="Top" Width="119"
Foreground="Maroon" FontSize="16" FontFamily="Georgia" Click="BrowseButton_Click" />
<Canvas>
<Path Canvas.Left="61" Canvas.Top="28" Width="133" Height="98" Fill="Blue"
Stretch="Fill" Data="M61,125 L193,28" Name="canvas1"/>
</Canvas>
</Grid>
</Window>
Код позади:
namespace CanvasStuff
{
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
}
private void BrowseButton_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.InitialDirectory = "c:\\";
dlg.Filter = "Image files (*.jpg)|*.jpg|All Files (*.*)|*.*";
dlg.RestoreDirectory = true;
if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string selectedFileName = dlg.FileName;
ImageBrush brush = new ImageBrush();
brush.ImageSource = new BitmapImage(new Uri(selectedFileName, UriKind.Relative));
canvas1.Background = brush; #error here
BitmapImage bitmap = new BitmapImage();
}
}
}
}
UriKind.Relative
? 19.11.2014