Я читал об изменении внешнего вида элементов управления WPF. В большинстве случаев кнопки были созданы с нуля и, следовательно, не было нескольких источников, не говоря уже о одном изображении, которое использовалось для отображения кнопки, которая будет правильно изменять размер.Пользовательские настраиваемые WPF кнопки (и, возможно, другие элементы управления)
Я хочу отобразить кнопку, на которой пользовательский взгляд. Он должен иметь возможность загружать визуальные данные из изображения (предпочтительно PNG-изображение с пикселем-альфа), нарезать его на куски (см. Схему ниже) и, таким образом, правильно изменить размер кнопки, сохраняя при этом столько преимуществ исходную кнопку WPF (включая текст/контент, значки, события и привязку).
Возможно ли это как можно?
Есть ли способ иметь шаблон WPF, который будет использовать определенный ImageSource (или, возможно, даже несколько отдельных файлов, если это необходимо), чтобы позволить изменяемую кнопку (или управлений в целом, если это сделать -able). Эта кнопка будет содержать значок и некоторый текст, и у него будет шаблон изображения «onMouseOver», а также «onMouseDown».
Я знаю, что в CSS это средство, имеющее изображение, представляет собой целую карту изображений и использует координаты и обрезающие прямоугольники для обеспечения правильного внешнего вида. Кто-нибудь есть идея, если это возможно, и дайте мне несколько указателей , где я мог бы найти, как «создавать» свои собственные элементы управления, которые происходят из известных?
В этом конкретном случае мне действительно нужны кнопки и, возможно, индикаторы хода. Я думаю, если бы я мог понять, как стилизовать кнопки и индикаторы выполнения, у меня будет идея о том, как это сделать для других типов элементов управления.
Я использую .NET Framework 4.5, и люди, которые будут использовать это приложение, также должны будут использовать ту же структуру.
Спасибо заранее!
Это отличный ответ - большое спасибо!Я подумал о создании пользовательского элемента управления (который происходит от кнопки WPF), что позволит указать границы областей без растяжения, чтобы упростить настройку внешнего вида. Я все еще мог использовать Button.Background как ImageSource, но разрезал его в соответствии с отображаемыми свойствами зависимостей. Также было бы намного легче иметь фоновое изменение ImageSource при наведении или нажатых состояниях. Спасибо за этот ответ! – Igor