퍼즐 응용 프로그램을 만들기 위해 WPF 및 C #을 사용하고 있습니다.
OpenFileDialog 클래스를 통해 JPEG 이미지를 선택하여 팝업에서 사진을 열려고합니다.
현재 직면하고있는 문제는 팝업에 아무 것도 표시되지 않는다는 것입니다 (선택된 이미지 없음). 정확한 소스가 무엇인지 모르기 때문에 실제로 XAML 파일에 태그가 있어야하는지 모르겠습니다. (열린 이미지에 따라 소스가 변경되기 때문에)입니다.
다음은 .cs 파일의 코드입니다.
private void Open_Click(object sender, RoutedEventArgs e)
{
PatternWindow.IsOpen = true;
Microsoft.Win32.OpenFileDialog openFileDialong1 = new Microsoft.Win32.OpenFileDialog();
openFileDialong1.Filter = "Image files (.jpg)|*.jpg";
openFileDialong1.Title = "Open an Image File";
openFileDialong1.ShowDialog();
string fileName = openFileDialong1.FileName;
try
{
System.Drawing.Image image = System.Drawing.Image.FromFile(fileName);
}
catch (Exception ex)
{
}
}
다음은 UI 코드를 표시하는 XAML 파일의 코드입니다.
<StackPanel>
<Popup Name="PatternWindow" PlacementTarget="{Binding ElementName=ButtonCanvas}" Placement="Relative" HorizontalOffset="280" VerticalOffset="50" IsOpen="False" Width="250" Height="250">
<Border BorderBrush="Blue" BorderThickness="5" Background="White">
<StackPanel>
<TextBlock Foreground="Black" FontSize="16">Chosen Pattern Window</TextBlock>
<Image Name="patternImage" Source= Width="200" Height="200"/>
</StackPanel>
</Border>
</Popup>
</StackPanel>
어떤 도움이라도 대단히 감사하겠습니다.
UI의 경우 이미지 태그에 소스를 작성할 필요가 없습니다.
<Image Name="patternImage" Width="200" Height="200"/>
코드의 경우 선택한 파일에서 BitmapImage를 만들어야합니다.
private void Open_Click(object sender, RoutedEventArgs e)
{
PatternWindow.IsOpen = true;
Microsoft.Win32.OpenFileDialog openFileDialong1 = new Microsoft.Win32.OpenFileDialog();
openFileDialong1.Filter = "Image files (.jpg)|*.jpg";
openFileDialong1.Title = "Open an Image File";
openFileDialong1.ShowDialog();
string fileName = openFileDialong1.FileName;
try
{
//here you create a bitmap image from filename
BitmapImage bi = new BitmapImage();
bi.BeginInit();
bi.CacheOption = BitmapCacheOption.OnLoad;
bi.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
bi.UriSource = new Uri(fileName);
bi.EndInit();
patternImage.Source = bi;
}
catch (Exception ex)
{
//throw exception
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다