none
Помогите с созданием своего стиля для проекта на WPF RRS feed

  • Вопрос

  • Доброе время уважаемые.

    Проблемка в том, что уже не первый день пытаюсь написать свой стиль для приложения на ПК (С WPF столкнулся не давно и новичок в программировании) используя Framework 3.5. 

    Хочу написать стиль подобный Metro. Но сколько не пытался постоянно выходит, стандартное окно. А хочется вот такое окно что б вышло:

    Работаю в VS  2010 SP 1 Ultimate на Windows Server 2008 R2 Standart с использованием SQL Server 2012 Standart и Office 2010 Pro. (всё лицензионное).

    Пытался подстроить под себя MahApps.Metro и Elysiym (2 стиля для WPF)

    Вопрос: Как мне взять шаблон стиля окна из Windows со всеми компонентами? И как через папку Resource подключить этот файл? А ещё использовать Ribbon со стилем Metro возможно использовать?

    Заранее благодарен за ответы...

    PS: Мало информации о написании своего стиля для WPF с нуля.

    22 марта 2015 г. 19:55

Ответы

  • Всё я сам нашел ответ на свой вопрос. По идее тему можно в архив.

    Решение вот:

    <Border
                                        x:Name="TitleBar"
                                        DockPanel.Dock="Top"
                                        BorderBrush="{StaticResource WindowBorderBrush}"
                                        Background="{StaticResource TitleBarBackgroundBrush}"
                                        Padding="0"
                                        BorderThickness="0,0,0,1"
                                        MouseLeftButtonDown="TitleBarMouseLeftButtonDown"
                                        MouseMove="TitleBarMouseMove"
                                        >

    1 апреля 2015 г. 11:46
  • LXGDARK А еще при максимальном раскрытии окна закрывается полностью всё окно включая нижнею панель с часами.

    Нашел решение. В стиль окна добавляем строчку:

    <Setter Property="MaxHeight" Value="{DynamicResource {x:Static SystemParameters.MaximizedPrimaryScreenHeightKey}}"/>


    VB.Net - WPF, WinRT, WP

    24 марта 2015 г. 12:00
    Отвечающий
  • Всем снова доброе время суток!

    С окном я разобрался благодаря LXGDARK.

    Вот что вышло у меня:

    Но встал последний вопрос: Как мне сделать синею полоску такую же цветом как по кругу окна но олько что б она разделяла TitleBar и Grid? 

    1 апреля 2015 г. 11:09

Все ответы

  • Здравствуйте,

    Рассмотрите этот гайд:

    http://www.codeproject.com/Articles/442856/Visual-Studio-Metro-Styles-for-WPF


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    23 марта 2015 г. 6:50
    Модератор
  • Спасибо Максим... Но тут не то немного что хотелось бы сделать. Вот Вы сами может знаете как изменять через ресурсы само окно WPF и компоненты? Ну или где взять кастет, который можно править ручками под себя.
    23 марта 2015 г. 7:10
  • http://futurevbnet.ru/publ/2-1-0-2

    Там на VB, но писал я, поэтому если что не понятно пишите, подскажу.


    VB.Net - WPF, WinRT, WP

    23 марта 2015 г. 7:35
    Отвечающий
  • Спасибо огромное... Всё доходчиво и понятно касаемо окна самого. А вот с кнопками разбираюсь до сих пор.

    И двойной клик не работает пока что, что б раскрыть на максимум окно.

    23 марта 2015 г. 9:44
  • LXGDARK А еще при максимальном раскрытии окна закрывается полностью всё окно включая нижнею панель с часами.
    23 марта 2015 г. 10:27
  • LXGDARK А еще при максимальном раскрытии окна закрывается полностью всё окно включая нижнею панель с часами.

    Конкретно этот прикол знаю, но как то руки не доходили по разбираться. Если время найду сегодня, то поищу решение.

    С кнопками там халтура в статье. Если я правильно помню, то в исходнике все должно быть. Так же там рядом статья, в которой ответ на вопрос, что у вас то же скоро возникнет.


    VB.Net - WPF, WinRT, WP

    23 марта 2015 г. 11:07
    Отвечающий
  • Я советую вам так поступить. Вы делайте это все на новом проекте, потом когда большая часть преобразования будет сделана и останутся выше озвученные вопросы, то киньте исходник и по нему дальше будем работать. Что бы я не гадал, как вы все сделали, а видел о чем речь.

    VB.Net - WPF, WinRT, WP

    23 марта 2015 г. 11:09
    Отвечающий
  • Хорошо.
    23 марта 2015 г. 17:53
  • LXGDARK А еще при максимальном раскрытии окна закрывается полностью всё окно включая нижнею панель с часами.

    Нашел решение. В стиль окна добавляем строчку:

    <Setter Property="MaxHeight" Value="{DynamicResource {x:Static SystemParameters.MaximizedPrimaryScreenHeightKey}}"/>


    VB.Net - WPF, WinRT, WP

    24 марта 2015 г. 12:00
    Отвечающий
  • Спасибо за решение. Сегодня начну с нуля писать тк появилось время для себя.

    А не подскажите как сделать вокруг окна эффект такой как на рисунке окна выше прикрепленного?

    26 марта 2015 г. 8:16
  • Спасибо за решение. Сегодня начну с нуля писать тк появилось время для себя.

    А не подскажите как сделать вокруг окна эффект такой как на рисунке окна выше прикрепленного?

    Это тень. В моем примере она есть, но я стараюсь не использовать, так как существенно снижает производительность.

    VB.Net - WPF, WinRT, WP

    26 марта 2015 г. 8:19
    Отвечающий
  • У Вас Она не по кругу в примере, а только справа и снизу 
    26 марта 2015 г. 8:59
  • А ещё в разных программах Grid отображается по разному. FrameWork 4.0 в обоих проектах
    26 марта 2015 г. 9:29
  • Всем снова доброе время суток!

    С окном я разобрался благодаря LXGDARK.

    Вот что вышло у меня:

    Но встал последний вопрос: Как мне сделать синею полоску такую же цветом как по кругу окна но олько что б она разделяла TitleBar и Grid? 

    1 апреля 2015 г. 11:09
  • Всё я сам нашел ответ на свой вопрос. По идее тему можно в архив.

    Решение вот:

    <Border
                                        x:Name="TitleBar"
                                        DockPanel.Dock="Top"
                                        BorderBrush="{StaticResource WindowBorderBrush}"
                                        Background="{StaticResource TitleBarBackgroundBrush}"
                                        Padding="0"
                                        BorderThickness="0,0,0,1"
                                        MouseLeftButtonDown="TitleBarMouseLeftButtonDown"
                                        MouseMove="TitleBarMouseMove"
                                        >

    1 апреля 2015 г. 11:46
  •  По идее тему можно в архив.

    Под каждым ответом есть ссылочка "Пометить как ответ". Выберите самый полезный ответ из топика и нажмите эту ссылку.

    По вашему результату - отлично! мне понравилось


    VB.Net - WPF, WinRT, WP

    1 апреля 2015 г. 12:00
    Отвечающий
  • LXGDARK Благодарю... Но к сожалению у меня нет ссылки "Пометить как ответ".

    За то встал вопрос оформления главной страницы:

    А как на WPF сделать станицу плитками как в Windows 8.1 (типо меню Пуск)

    Нашел тему про Tile, но они для мобильного приложения.

    Заранее спасибо за подсказку о том в какую сторону копать.

    PS: Думал чисто сделать сетку 3 на 3 но не красиво выходит. 

    1 апреля 2015 г. 12:08
  • LXGDARK Благодарю... Но к сожалению у меня нет ссылки "Пометить как ответ".

    Это потому, что вы изменили тип топика с "Вопрос" на "Обсуждение".

    Что же по новому вопросу, то лучше задать его в новой теме.


    VB.Net - WPF, WinRT, WP

    1 апреля 2015 г. 12:11
    Отвечающий
  • Пометил как ответ не которые сообщения...

    Новую тему открою по последнему вопросу сейчас.

    1 апреля 2015 г. 12:20