C# WPF'de resim dosyalarını nasıl kullanabilir ve saklayabilirim?

II.Wilhelm

Hectopat
Katılım
11 Eylül 2020
Mesajlar
1.825
Çözümler
6
Yer
Almanya
Daha fazla  
Cinsiyet
Erkek
Meslek
König
Merhaba. WPF'ye yeni başladım. Winforms da resimlerimi Properties.Resources veya ImageList de saklayabilirken WPF de bunları göremedim. Ayrıca resim dosyaları için kullandığım System.Drawing.Image de ortadan kaybolmuş. Bunun yerine BitmapImage mi kullanmalıyım?
 
Son düzenleme:
Dediğiniz gibi klasörden alabilirim ama direk bir yerden property ile erişmeyi bekliyordum.
Compile sırasında dosyayı import etmek mi yoksa runtime da secmek mi istiyorsun? Örneğin compile sırasında statik resimlerin vardır, onların locationlarını vermişsindir, yada import edilmiş haldedir asla değişmeyecektir vs vs. Bunun için klasöre koyuyorsun sonra erişiyorsun.

Run time'da kullanıcıya resim seçme özgürlüğü vermek için;

Sonra @Vavien. 'in verdiği bağlantıdaki source belirleme yöntemiyle runtime'da belirleyebilirsin.

Örnek olması için;
C#:
 public partial class MainWindow : Window
 {
     string pathToImg = string.Empty;
     BitmapImage img = new BitmapImage();
     public MainWindow()
     {
         InitializeComponent();
     }

     private void Button_Click(object sender, RoutedEventArgs e)
     {
         var dialog = new Microsoft.Win32.OpenFileDialog();
         dialog.FileName = "";
         dialog.DefaultExt = ".png, .jpg";
         dialog.Filter = "PNG File (.png)|*.png|JPEG file (.jpg)|*.jpg|All files(*.*)|*.*";

         if(dialog.ShowDialog() == true)
         {
             img = new BitmapImage();
             img.BeginInit();
             img.UriSource = new Uri(dialog.FileName);
             img.EndInit();

             imgViewer.Source = img;
             imgViewer.Stretch = Stretch.Fill;
         }
     }
 }
XML:
<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Image HorizontalAlignment="Left" Height="172" Margin="246,143,0,0" VerticalAlignment="Top" Width="313" Name="imgViewer"/>
        <Button Content="Button" HorizontalAlignment="Center" Height="19" Margin="0,371,0,0" VerticalAlignment="Top" Width="60" Click="Button_Click"/>

    </Grid>
</Window>
 
Teşekkür ederim. Compile da nasıl yapacağımı sormuştum. Anladığım kadarıyla direk klasörden almam gerekecek.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…