×
=0) { let js = text.slice(pos1, pos2); + '<\/' + "script" + '>'; arrText.push(js); // next pos1 = pos2; continue; } } } break; } return arrText; } function OpenDialog(parentDiv, urlContent) { parentDiv = document.getElementById('modal-background'); // new !!!!!!! parentDiv.appendChild(document.getElementById('modal-template')); document.getElementById('modal-background').style.display = "block"; document.getElementById('modal-template').style.display = "flex"; // !!!!! document.getElementById('modal-body').innerHTML = ""; post_url(urlContent, "", function(text_from_server) { var element = document.getElementById('modal-body'); element.innerHTML = text_from_server; // add scripts var arrJSText = get_scripts(text_from_server); for (var i=0; i
dir.by
Search
Programming, development, testing
→
WPF. Windows Presentation Foundation (отдельное приложение exe файл)
→
Добавляем картинку (jpg, bmp, png) в проект и помечаем как Resource | C# WPF приложение
Looked at
2150
times
Добавляем картинку (jpg, bmp, png) в проект и помечаем как Resource | C# WPF приложение
last updated: 23 June 2024
Зачем в проекте помечать картинку как
Resource
?
Ответ:
Resource
при компиляции программы добавляется внутри
exe
файла. К
Resource
во время выполнения программы легко обратится и получить данные и показать на экране.
Шаг 1.
Создаем новый проект
Создаем новый проект WPF Application...
Шаг 2. Добавим картинку в проект
Вот такую картинку будем добавлять в проект:
Скачать ...
Нажимаем правой клавишей мыши на проекте и в меню выбираем:
Add
→
Existing Item
У меня на компьютере на
D:/
лежит картинка
tree.jpg
Выбираем картинку и нажимаем на кнопку
Add
Увидим что картинка добавилась в проект:
Шаг 3. Картинку в проекте помечаем как Resource
Нажимаем правой клавишей мыши на картинке и в меню выбираем:
Properties
Устанавливаем для
Build Action
значение
Resource
Хороший результат
загружаем картинку из Resource:
Добавим в файл
MainWindow.xaml
элемент
<Image .../>
В
Source
укажем путь к картинке из
Resource
Source
=
"pack://application:,,,/WpfApp1;component/tree.jpg"
Путь к картинке из
Resource
это
URI
в таком общем виде:
pack://application:,,,/[название библиотеки];component/[путь к картинке]
Файл
MainWindow.xaml
<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
Width=
"120"
Height=
"80"
Source=
"pack://application:,,,/WpfApp1;component/tree.jpg"
/>
</Grid>
</Window>
Запустим программу:
Видим что картинка отобразилась из
Resource
На заметку!
Путь к картинке можно указать из
D:/
вот так:
Source=
"D:/tree.jpg"
Файл
MainWindow.xaml
<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
Width=
"120"
Height=
"80"
Source=
"D:/tree.jpg"
/>
</Grid>
</Window>
Но это плохой стиль программирования, потому что картинку надо класть на каждый компьютер на
D:/
диск.
← Previous topic
Example "Do ScrollBar less(more) in ScrollViewer" | C# WPF application
Next topic →
В элементе Image показываем картинку (jpg, bmp, png) из Resource | C# WPF приложение
Your feedback ... Comments ...
Your Name
Your comment
(www links can only be added by a logged-in user)
+ Picture
Объявления
Объявления
WPF простое новое приложение
•
Создаем новое WPF приложение | C#
WPF layout
•
Делаем layout с DockPanel и StackPanel в WPF
События
•
Пример "Получаем координаты мыши при нажатии левой клавишей мыши на TextBlock"| координаты экрана и относительные координаты | C# WPF приложение
•
Пример "Получаем координаты мыши при нажатии левой клавишей мыши на Button"| координаты экрана и относительные координаты | C# WPF приложение
•
Пример "Получаем координаты мыши при нажатии левой клавишей мыши на Grid и рисуем линию"| C# WPF приложение
•
Пример "При двойном нажатии левой клавишей мыши на Grid показываем сообщение"| C# WPF приложение
WPF элементы
Label
•
Пример "Устанавливаем текст в Label" через c# код | WPF приложение
иконки FontAwesome
•
Пример "Показываю иконки, для иконки подключаю библиотеку fontawesome5" | C# WPF приложение
•
Example "I make animations for icons, library fontawesome5" | C# WPF application
TextBlock
•
Пример "Устанавливаем текст в TextBlock используя Binding". Еще добавим двойной Bindning используя INotifyPropertyChanged | C# WPF приложение
•
Пример "Несколько TextBlock (показываем тексты) и делаем так чтобы при mouse move выделялся элемент где мышка (mouse over)" | C# WPF приложение
•
Пример "Получаем координаты мыши при нажатии левой клавишей мыши на TextBlock"| координаты экрана и относительные координаты | C# WPF приложение
Button
•
Пример "Получаем координаты мыши при нажатии левой клавишей мыши на Button"| координаты экрана и относительные координаты | C# WPF приложение
TextBox
•
Пример "Устанавливаем и получаем текст в TextBox используя Binding" | C# WPF приложение
•
Пример "Устанавливаем текст в TextBox" через c# код | WPF приложение
TextBox с Place Holder
•
Пример "Показываем Place Holder в TextBox" | WPF приложение
•
Пример "Показываем Place Holder с иконкой в TextBox", для иконки подключаю библиотеку fontawesome5 | WPF приложение
TextBox с проверкой текста (валидация)
•
Пример "Устанавливаем текст в TextBox используя Binding и делаем валидацию (если текст не правильный)" | C# WPF приложение
ComboBox
•
Пример "В ComboBox делаем редактирование текста. Получаем текст используя Binding" | C# WPF приложение
ItemsControl
•
Пример "ItemsControl, кнопка и обработчик нажатия" | WPF приложение
Grid
•
Что такое Grid в WPF
•
Как добавить RowDefinition, ColumnDefinition в Grid (мышкой в XAML design editor) | C# WPF приложение
•
В Grid добавляем vertical scrolling | WPF приложение
DataGrid
•
Пример "DataGrid делаем bind данных", кнопка и обработчик нажатия в DataGrid, выравнивание текста в DataGrid, scrolling | WPF приложение
•
Как сделать scrolling для DataGrid ? | C# WPF приложение
•
Scrolling для DataGrid (чтобы скролинг работал когда мы крутим колесо мышки и мышка находится вне scroll bar) | C# WPF приложение
•
Как выделить row цветом при нажатии на row мышкой (change background for selected row) в DataGrid ? | C# WPF приложение
•
Как row DataGrid выделить цветом (сделать background) ? | C# WPF приложение
•
Пример "DataGrid делаем сортировку колонки по своему алгоритму (Custom Sort)" | WPF приложение
DataGrid внутри DataGrid
•
Пример портфолио сотрудников с описанием задач: "DataGrid внутри DataGrid используя RowDetailsTemplate" | WPF приложение
ListView
•
Пример "В ListView расширяем колонку при добавлении данных (auto column width)" | WPF приложение
•
Пример "В ListView используем ItemTemplate DataTemplate" | WPF приложение
ScrollViewer
•
В Grid добавляем vertical scrolling | WPF приложение
•
Как сделать scrolling для DataGrid ? | C# WPF приложение
•
Scrolling для DataGrid (чтобы скролинг работал когда мы крутим колесо мышки и мышка находится вне scroll bar) | C# WPF приложение
•
Example "Do ScrollBar less(more) in ScrollViewer" | C# WPF application
Resource файл
•
Добавляем картинку (jpg, bmp, png) в проект и помечаем как Resource | C# WPF приложение
Image
•
В элементе Image показываем картинку (jpg, bmp, png) из Resource | C# WPF приложение
•
Выбираем картинку (jpg, bmp, png) из компьютера и показываем в элементе Image. Сохраняем картинку в базу данных | C# WPF приложение
•
Пример "В Image элементе делаем Binding для Source" | C# WPF приложение
•
Пример "Конвертируем текст base64 в картинку Bitmap и показываем в Image элементе" | C# WPF приложение
•
Пример "Открываем SVG файл и показываем картинку в Image элементе" | C# WPF приложение
Canvas
•
Пример "Создаем Canvas и рисуем картинку" C# WPF
•
Пример "Рисуем картинку с движением на Canvas" C# WPF
•
Пример "Рисуем картинку с движением и анимацией sprite на Canvas" C# WPF
Line
•
Рисуем Line (сплошная и штриховая линии) | C# WPF приложение
•
Пример "Создаем и рисуем линию при нажатии левой клавишей мыши на Grid"| Grid Line | C# WPF приложение
Конвертируем картинку в XAML Path Geometry
•
Конвертируем SVG в XAML(используя Adobe Illustrator), заполняем Path Data Geometry, показываем линии на экране | C# WPF приложение
•
Конвертируем SVG в XAML(используя Dias SVG to UWP XAML Converter), заполняем Path Data Geometry, показываем линии на экране | C# WPF приложение
•
Конвертируем PNG в SVG в XAML | C# WPF приложение
•
Converter SVG to XAML | WPF C#
•
Конвертируем XAML в SVG | C# WPF приложение
ViewBox
•
Пример "ViewBox делаем Binding для Left, Top, Width, Height, ContetnPresenter binding" | C# WPF приложение
Width by percentage
•
Разделить экран по вертикали (по ширине) на 2 равные части экран (width1 = 50%, width2 = 50%), используем Grid | C# WPF приложение
•
Разделить экран по вертикали (по ширине) на 2 части (width1 = 70%, width2 = 30%), используем Grid | C# WPF приложение
•
Пример "Устанавливаем ширину элемента в процентах от ширины родительского элемента" (width in percentage), пишем свой IValueConverter | C# WPF приложение
База данных (Entity Framework)
•
Entity Framework в приложении WPF. Используем Code First (пишем c# код, а таблицы в базе данных создаются сами)
Создаем свои WPF элементы
•
Example "Create your own WPF element using Style and a new xaml file. The new element is: at the top Title, at the bottom the text in the frame. Using Binding | C# WPF application
•
Пример "Создаем свой новый WPF элемент со своими свойсвами в новом cs и xaml файлах. В WPF новом элементе: вверху Title, снизу текст и в рамке | C# WPF приложение
WPF приложение с библиотекой Prism (MVVM шаблон проектирования)
•
Создаем новое WPF приложение с Prism Unity (разделение проекта на папки Services, Views, ViewModels). Патерн MVVM (Model-View-ViewModel) | C#
•
WPF приложение с Prism Unity. В приложении Tab и разделения на отдельные xaml используя Region.
WPF приложение с Locator (MVVM шаблон проектирования)
•
Создаем новое WPF приложение с Locator (разделение проекта на папки Views, ViewModels)
•
Как добавить Dependency Injection, загрузку из appsettings.json в новом WPF приложении ?
Автоматические тесты
•
Пишем автоматический тест для WPF C# приложения (используем Nuget.Appium и свойство AutomationProperties.AutomationId)
Вопросы на собеседованиях
•
В чем отличие static resource от dynamic resource ? | WPF C#
Дополнительные темы, вопросы
•
Открываем окно свойств (properties) для графического элемента в WPF приложении C#
Ошибки
•
Error "To run this application, you must install .NET. Would you like to download it now?" | I run WPF the application on C#
Книги
•
Книги для изучения WPF
Ваши вопросы присылайте по почте:
info@dir.by