WPF 단추에 이미지 추가
이 솔루션을 시도했습니다.
<Button>
<StackPanel>
<Image Source="Pictures/img.jpg" />
<TextBlock>Blablabla</TextBlock>
</StackPanel>
</Button>
하지만 프로젝트 창에서만 이미지를 볼 수 있으며 프로그램을 실행하면 사라집니다.
내가 이것을 시도하면 :
Image img = new Image();
img.Source = new BitmapImage(new Uri("foo.png"));
StackPanel stackPnl = new StackPanel();
stackPnl.Orientation = Orientation.Horizontal;
stackPnl.Margin = new Thickness(10);
stackPnl.Children.Add(img);
Button btn = new Button();
btn.Content = stackPnl;
"PresentationFramework.dll에서 'System.Windows.Markup.XamlParseException'"예외가 발생합니다.
해결책은 무엇인가?
'누락 된'이미지의 경우 고려해야 할 몇 가지 사항이 있습니다.
XAML이 리소스를 찾을 수없는 경우 무시할 수 있습니다 (을 throw하지 않을 때
XamlParseException
).리소스를 올바르게 추가하고 정의해야합니다.
예상 한 곳에 프로젝트에 있는지 확인하십시오.
프로젝트를 리소스로 사용하여 빌드되었는지 확인하십시오.
(오른쪽 클릭 → 속성 → BuildAction = 'Resource')
비슷한 경우에 시도 할 또 다른 방법은 이미지 (또는 기타 리소스)를 재사용하는데도 유용합니다.
XAML에서 이미지를 리소스로 정의합니다.
<UserControl.Resources>
<Image x:Key="MyImage" Source.../>
</UserControl.Resources>
나중에 원하는 컨트롤에서 사용하십시오.
<Button Content="{StaticResource MyImage}" />
아래 XAML 코드 조각을 시도하십시오.
<Button Width="300" Height="50">
<StackPanel Orientation="Horizontal">
<Image Source="Pictures/img.jpg" Width="20" Height="20"/>
<TextBlock Text="Blablabla" VerticalAlignment="Center" />
</StackPanel>
</Button>
XAML에서 요소는 트리 구조에 있습니다. 따라서 부모 컨트롤에 자식 컨트롤을 추가해야합니다. 아래 코드 스 니펫도 잘 작동합니다. XAML 루트 그리드의 이름을 'MainGrid'로 지정합니다.
Image img = new Image();
img.Source = new BitmapImage(new Uri(@"foo.png"));
StackPanel stackPnl = new StackPanel();
stackPnl.Orientation = Orientation.Horizontal;
stackPnl.Margin = new Thickness(10);
stackPnl.Children.Add(img);
Button btn = new Button();
btn.Content = stackPnl;
MainGrid.Children.Add(btn);
사용하다:
<Button Height="100" Width="100">
<StackPanel>
<Image Source="img.jpg" />
<TextBlock Text="Blabla" />
</StackPanel>
</Button>
작동합니다. 그러나 프로젝트의 리소스에 이미지를 추가해야합니다.
텍스트를 오버레이하려는 경우 버튼의 배경을 이미지로 설정할 수 있습니다.
<Button>
<Button.Background>
<ImageBrush ImageSource="/AssemblyName;component/Pictures/img.jpg"/>
</Button.Background>
<TextBlock>Blablabla</TextBlock>
</Button>
이미지 소스 구문을주의하십시오. 도움 이 필요하면이 질문 을 참조하십시오 .
나는 또한 같은 문제가 있었다. 다음 코드를 사용하여 수정했습니다.
<Button Width="30" Margin="0,5" HorizontalAlignment="Stretch" Click="OnSearch" >
<DockPanel>
<Image Source="../Resources/Back.jpg"/>
</DockPanel>
</Button>
참고 : 속성 창에서 이미지의 빌드 작업이 Resource
.
ContentTemplate 사용해보기 :
<Button Grid.Row="2" Grid.Column="0" Width="20" Height="20"
Template="{StaticResource SomeTemplate}">
<Button.ContentTemplate>
<DataTemplate>
<Image Source="../Folder1/Img1.png" Width="20" />
</DataTemplate>
</Button.ContentTemplate>
</Button>
또한 리소스 탭 의 액세스 수정 자를 '공개' 로 설정해야한다는 것을 발견 했습니다. 기본적으로 내부로 설정되어 있고 내 아이콘은 디자인 모드에서만 나타나지만 응용 프로그램을 실행할 때는 나타나지 않았습니다.
참조 URL : https://stackoverflow.com/questions/17515631/add-an-image-in-a-wpf-button
'Development Tip' 카테고리의 다른 글
다중 처리와 하위 프로세스의 차이점은 무엇입니까? (0) | 2021.01.06 |
---|---|
R 벡터를 요소 1 개의 string 형 벡터로 변환 (0) | 2021.01.06 |
jshint가 " 'case'앞에 'break'문이 있어야합니다." (0) | 2021.01.06 |
레이아웃 페이지 또는 페이지 당 여러 구성 요소와 함께 React-Router 사용 (0) | 2021.01.06 |
Numpy 크기 조정 / 크기 조정 이미지 (0) | 2021.01.06 |