Форум программистов, компьютерный форум, киберфорум
Наши страницы

Обновление системных кистей (стилей) на лету - Windows Phone

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Windows Phone Windows CE Отловить фокус в другом приложении http://www.cyberforum.ru/windows-phone-dev/thread1419817.html
Добрый день, коллеги! Мне нужно на устройстве с ОС Windows CE 5.0 получить handle окошка ( такого как CEdit к примеру ) на котором установлен фокус в другом приложении ( чтобы в дальнейшем вставить...
Windows Phone Как оперировать с изображениями? Начинаю изучать разработку под Windows Phone, и столкнулся с проблемой. В обычных windows-приложениях для работы с изображениями используется Bitmap, из библиотеки System.Graphics, но в приложении... http://www.cyberforum.ru/windows-phone-dev/thread1419138.html
Как использовать клавиатуру без букв? Windows Phone
Добрый вечер, Сообщество! Захотел реализовать небольшую программку для личного использования, но с WP встречаюсь впервые. Как сделать, чтобы вместо полнофункциональной клавиатуры вылезала клавиатура...
Как сделать пункт нижнего меню ниже иконок? Windows Phone
Как сделать пункт нижнего меню ниже иконок? На скрине показано.
Windows Phone AesManaged в Windows Phone 8.1 http://www.cyberforum.ru/windows-phone-dev/thread1415569.html
Есть ли возможность использовать AesManaged в Windows Phone 8.1. MSDN пишет, что WP 8.1 поддерживает AesManaged, но я не могу найти его.
Windows Phone На иконке отсутствует название приложения, как вылечить? На иконки отсутствует название приложения, как вылечить ? подробнее

Показать сообщение отдельно
wshadw
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 17

Обновление системных кистей (стилей) на лету - Windows Phone

16.04.2015, 23:22. Просмотров 415. Ответов 0
Метки (Все метки)

WP8.1 Runtime C#
Здравствуйте, необходимо обновить цвет системных элементов на лету, т.е. такие как цвет переключателя, цвет выделения листбокса, и подобное. Я нашёл системные кисти, которыми, прописав в app.xaml, в ресурсах, я изменил цвет(при загрузке приложения), но изменение этих кистей из кода c# на лету не даёт должного эффекта. Как можно перезагрузить стили/обновить элементы?
Пс. Мне нужно нечто подобное как в стандартном почтовом клиенте, там в настройках можно сменить цвет фона, и соответственно там меняются и цвета элементов, мгновенно.
Вот как я пытался это сделать
App.xaml:
Кликните здесь для просмотра всего текста

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<Application
    x:Class="App2.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App2">
    <Application.Resources>
        <Color x:Key="MainBrush">#FF009999</Color>
        <SolidColorBrush x:Key="ProgressBarIndeterminateForegroundThemeBrush" Color="{ThemeResource MainBrush}"/>
        <SolidColorBrush x:Key="ToggleSwitchCurtainBackgroundThemeBrush" Color="{ThemeResource MainBrush}"/>
        <SolidColorBrush x:Key="SliderTrackDecreaseBackgroundThemeBrush" Color="{ThemeResource MainBrush}"/>
        <SolidColorBrush x:Key="ListBoxItemSelectedBackgroundThemeBrush" Color="{ThemeResource MainBrush}"/>
        <SolidColorBrush x:Key="TextSelectionHighlightColorThemeBrush" Color="{ThemeResource MainBrush}"/>
        <SolidColorBrush x:Key="SliderThumbBackgroundThemeBrush" Color="{ThemeResource MainBrush}"/>
        <SolidColorBrush x:Key="SliderThumbBorderThemeBrush" Color="{ThemeResource MainBrush}"/>
        <SolidColorBrush x:Key="ListBoxItemPointerOverForegroundThemeBrush" Color="White" />
        <SolidColorBrush x:Key="ListBoxItemPressedForegroundThemeBrush" Color="White" />
        <SolidColorBrush x:Key="ListBoxItemSelectedForegroundThemeBrush" Color="White" />
        <SolidColorBrush x:Key="ListBoxItemSelectedPointerOverBackgroundThemeBrush" Color="Transparent"/>
        <SolidColorBrush x:Key="ListBoxItemDisabledForegroundThemeBrush" Color="Transparent"/>
        <SolidColorBrush x:Key="ListBoxItemPointerOverBackgroundThemeBrush" Color="Transparent"/>
        <SolidColorBrush x:Key="ButtonPressedBackgroundThemeBrush" Color="Transparent"/>
        <SolidColorBrush x:Key="ListBoxItemPressedBackgroundThemeBrush" Color="Transparent"/>
    </Application.Resources>
</Application>

MainPage.xaml:
Кликните здесь для просмотра всего текста

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 <Grid>
        <StackPanel>
            <Slider Value="50"/>
            <ListBox SelectedIndex="1" Background="Transparent">
                <TextBlock Foreground="White" Text="TEXT"/>
                <TextBlock Foreground="White" Text="TEXT"/>
                <TextBlock Foreground="White" Text="TEXT"/>
            </ListBox>
            <ToggleSwitch IsOn="True"/>
            <ProgressBar Height="10" Margin="0,20" IsIndeterminate="True"/>
            <Rectangle Height="30">
                <Rectangle.Fill>
                    <SolidColorBrush x:Name="RectBrush" Color="{ThemeResource MainBrush}"></SolidColorBrush>
                </Rectangle.Fill>
            </Rectangle>
 
            <Button Click="ButtonBase_OnClick" HorizontalAlignment="Center" Margin="0,60,0,0" Content="ИЗМЕНИТЬ ЦВЕТ ВСЕГО ЭТОГО"/>
        </StackPanel>
    </Grid>

MainPage.cs:
Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
        {
            var c = Color.FromArgb(255, 200, 0, 200);
 
            RectBrush.Color = c; //прямой способ, естественно работает
 
            Application.Current.Resources["MainBrush"] = c;
            Application.Current.Resources["ProgressBarIndeterminateForegroundThemeBrush"] = c;
            Application.Current.Resources["ToggleSwitchCurtainBackgroundThemeBrush"] = c;
            Application.Current.Resources["SliderTrackDecreaseBackgroundThemeBrush"] = c;
            Application.Current.Resources["ListBoxItemSelectedBackgroundThemeBrush"] = c;
            Application.Current.Resources["TextSelectionHighlightColorThemeBrush"] = c;
            Application.Current.Resources["SliderThumbBackgroundThemeBrush"] = c;
            Application.Current.Resources["SliderThumbBorderThemeBrush"] = c;
        }

Вот файл этого тестового проектаApp2.7z

Заранее спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.