При запуске проекта WPF не отображаются элементы
Добавил элемент (stackpanel и два image в неё) на форму (Приложение WPF.xaml), но при запуске проекта они не отображаются. Проверил всё - Visible, Opacite,isEnabled, вездё всё ок. Не пойму, в чём причина? Запускал с отладкой и без.
Код формы:
<Window x:Class="WpfApp2.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:WpfApp2"
mc:Ignorable="d"
Title="MainWindow" Height="515" Width="365" WindowStyle="None" ResizeMode="NoResize">
<Window.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF232D3F"/>
<GradientStop Color="#FF1D222C" Offset="1"/>
<GradientStop Color="#FF1D222C" Offset="0.483"/>
</LinearGradientBrush>
</Window.Background>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="25"/>
<RowDefinition Height="100"/>
<RowDefinition Height="300"/>
<RowDefinition Height="90"/>
</Grid.RowDefinitions>
<Grid Name="Toolbar" Grid.Row="0">
<Polygon Fill="White" Opacity="0.2" Points="107,0,115,7,249,7,257,0"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Height="25" Width="56" Grid.Column="2" Panel.ZIndex="10">
<Image Height="18" Width="18" Margin ="5" Source="/Images/minus passive.png" Stretch="Fill" Panel.ZIndex="2" />
<Image Height="18" Width="18" Margin ="5" Source="/Images/x passive.png" Stretch="Fill" Panel.ZIndex="1" HorizontalAlignment="Center" VerticalAlignment="Center" ScrollViewer.HorizontalScrollBarVisibility="Visible" />
</StackPanel>
</Grid>
</Grid>
Ответы (1 шт):
Ваш пример не воспроизводит проблему если задать просто пути до картинки на диске, а это означает, что дело не в разметке, а в том, как у вас в проекте заданы эти картинки, ибо они должны быть либо рядом с .exe, либо иметь "Действие при сборке: Ресурс""
Ответ принадлежит @EvgeniyZ
Разберём по пунктам оба варианта (рекомендую первый)
- "Действие при сборке : Ресурс"
Последовательность такая: Visual Studio -> Проект -> Свойства -> Ресурсы -> Изображения Добавить ресурс -> Добавить существующий объект. Далее кидаем на форму Image. В свойствах выбираем нужную картинку из добавленных ранее. Она отобразится на форме. Однако, если запустить приложение - ничего не видно. В обозревателе решиния находим папку Resource и выбираем наш файл с картинкой. Далее Свойства -> Копировать в выходной каталог устанавливаем "Всегда копировать".
Источник: Использование Resources в WPF С# XAML
- "Перемещение картинок ближе к exe"
Если конкретнее, то переместил в папку /bin/debug/net6.0-windows/<сюда> Там, где файл.exe проекта.
Оба варианта являются решением.Можно либо первый, либо второй использовать.


