2010-01-20 3 views
0

Привет, ребята, я искал этот вопрос, но ничего не мог придумать.Force Windows Classic Theme для приложения

Проблема:

Если пользователь изменяет цветовую схему на их рабочем столе Windows, он ухищрения некоторых функций в моей .net приложении.

Есть ли какой-либо способ заставить меня использовать приложение Windows Classic Theme, независимо от того, какая тема пользователя была настроена как?

Спасибо!

+1

Какая функциональность в частности? – aehlke

+0

Проблема, которая случается, довольно хромает. У меня есть богатое текстовое поле и вертикальная полоса прокрутки, которая сжимается/расширяется на основе цветовой схемы, установленной пользователем. У меня есть алгоритм, который анализирует текст в указанном текстовом поле в файле .rdlc. Ширина фактического текстового поля должна быть синхронизирована, но ширина полосы прокрутки слегка сдвигается ... – monO

ответ

1

Если вы используете Visual Studio: когда вы идете в свойствах проекта приложения, вы найдете флажок Включить XP Visual Styles. Если вы отключите это, к вашему приложению не должно применяться тематика. Я предполагаю, что это эквивалентно расторжению строки кода, упомянутой пользователем nobugz.

+0

Да, я попробовал это раньше, но его Цветовая схема (щелкните правой кнопкой мыши на рабочем столе -> Свойства -> Внешний вид -> Цветовая схема). Цветовая схема изменяет ширину полос прокрутки в приложении, которое (к сожалению) влияет на некоторые вещи. Я бы хотел чтобы заставить Windows Standard (вместо Slate и т. д.) – monO

+0

Тогда альтернативой было бы выяснить ширину полосы пропускания (по умолчанию) или высоту полосы прокрутки (вы можете получить ее через свойство где-то в .NET: 'SystemInformation.VerticalScrollBarWidth', или 'SystemInformation.HorizontalScrollBarHeight' соответственно). Вы можете использовать эту информацию для надлежащего масштабирования элементов пользовательского интерфейса. – stakx

+0

Я закончил тем, что пошел в вашем комментарии и, похоже, работает; Спасибо за вашу помощь! – monO

0

Я сделал это с помощью элементов управления DevExpress (http://devexpress.com), у них есть свой собственный имитирующий движок, а одна из включенных тем - Windows Classic. Темы даже стилируют границы окон, поэтому это полный контроль над внешним видом.

Что касается того, как это сделать самостоятельно, без контроля третьей стороны, я не знаю.

В частности, смотрите здесь для тематизации двигателя в наборе управления DevExpress: http://devexpress.com/Products/NET/Controls/WinForms/Skins/

3

При запуске установить это свойство на объекте приложения.

Application.VisualStyleState = System.Windows.Forms.VisualStyles.VisualStyleState.NoneEnabled; 
+0

Пробовал, но, похоже, не работал ... спасибо, хотя – monO

+0

Также вам нужно прокомментировать метод enablevisualstyles – rerun

Смежные вопросы