powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Theme
3 сообщений из 3, страница 1 из 1
Theme
    #39305795
AderAder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток. Подскажите, как можно плоучить в WPF название текущей темы в винде(Classic, Luna, Aero)? Или может можно как то отрисовать Border (через DrawingContext) таким образом, что бы он был похож на выделенный ListBoxItem?
...
Рейтинг: 0 / 0
Theme
    #39305815
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GetCurrentThemeName function (Windows)
Когда-то я написал вот такое:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
using System.Text;
using System.Text.RegularExpressions;

namespace WX.Core.Utils.WinAPI
{
  public enum WindowsThemes
  {
    Classic,
    Aero,
    Luna,
    Zune,
    Royale
  }

  public static class ThemeInfo
  {
    public static WindowsThemes CurrentTheme
    {
      get
      {
        var themeFile = new StringBuilder(0x200);
        var res = Defs.GetCurrentThemeName(themeFile, 0x200, null, 0, null, 0);
        if (res!=0)
          return WindowsThemes.Classic;
        var fn = themeFile.ToString();
        var rx = new Regex(@"(?<=\\)([^\\]+)(?=\.msstyles)", RegexOptions.IgnoreCase);
        if (!rx.IsMatch(fn)) return WindowsThemes.Classic;
        switch (rx.Match(fn).Groups[0].Value.ToUpperInvariant())
        {
          case "AERO":
            return WindowsThemes.Aero;
          case "LUNA":
            return WindowsThemes.Luna;
          case "ZUNE":
            return WindowsThemes.Zune;
          case "ROYALE":
            return WindowsThemes.Royale;
          default:
            return WindowsThemes.Classic;
        }
      }
    }

    [DllImport("uxtheme.dll", CharSet = CharSet.Auto)]
    extern static Int32 GetCurrentThemeName(
      StringBuilder stringThemeName,
      int lengthThemeName,
      StringBuilder stringColorName,
      int lengthColorName,
      StringBuilder stringSizeName,
      int lengthSizeName
    );
  }
}

...
Рейтинг: 0 / 0
Theme
    #39305981
AderAder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Theme
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]