Когда я добавляю кнопку значка на панель приложений, система заботится о отображении значка в белом цвете, если темная тема используется и отображается значок в черном, если используется светлая тема. Могу ли я использовать эту автоматическую окраску в другом месте приложения? Я хотел бы взять изображение значка из каталога SDK и использовать его на обычной кнопке, и было бы здорово, если бы я мог заставить систему отображать либо белый, либо черный в зависимости от темы. На данный момент я делаю это вручную, используя конвертер, но если есть способ автоматически сделать это, это будет чище. Кто-нибудь знает дорогу?Применение бар-стиль автоматической раскраски иконок в других местах WP7?
0
A
ответ
3
<Button Background="{StaticResource PhoneContrastBackgroundBrush}" >
<Button.OpacityMask>
<ImageBrush ImageSource="/Images/icon.png"/>
</Button.OpacityMask>
</Button>
icon.png должен быть белым
[EDIT]
ИЛИ (рисовать круг вокруг них) с помощью SDK изображение (appbar.basecircle.rest.png)
<Style x:Key="FlatStyle" TargetType="Button">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="{StaticResource PhoneForegroundBrush}"/>
<Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
<Setter Property="BorderThickness" Value="{StaticResource PhoneBorderThickness}"/>
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilySemiBold}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeMediumLarge}"/>
<Setter Property="Padding" Value="10,3,10,5"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid Background="Transparent">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver"/>
<VisualState x:Name="Pressed">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentContainer">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneBackgroundBrush}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="ButtonBackground">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneForegroundBrush}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="ButtonBackground">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneForegroundBrush}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Disabled">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentContainer">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="ButtonBackground">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="ButtonBackground">
<DiscreteObjectKeyFrame KeyTime="0" Value="Transparent"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border x:Name="ButtonBackground" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="0" Margin="{StaticResource PhoneTouchTargetOverhang}">
<Grid>
<Canvas Width="{TemplateBinding Width}" Height="{TemplateBinding Height}">
<Rectangle Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" Fill="{StaticResource PhoneForegroundBrush}">
<Rectangle.OpacityMask>
<ImageBrush ImageSource="/appbar.basecircle.rest.png"/>
</Rectangle.OpacityMask>
</Rectangle>
<Rectangle Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" Fill="{StaticResource PhoneForegroundBrush}" OpacityMask="{TemplateBinding BorderBrush}"/>
</Canvas>
<ContentControl x:Name="ContentContainer" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Foreground="{TemplateBinding Foreground}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
</Border>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Использование:
<Button Style="{StaticResource FlatStyle}" BorderThickness="0" Width="48" Height="48">
<Button.BorderBrush>
<ImageBrush ImageSource="/appbar.favs.rest.png"/>
</Button.BorderBrush>
</Button>
Смежные вопросы
- 1. Применение стиля раскраски XML на TextMergeViewer Eclipse
- 2. XmlDocument Сохранить в других местах
- 3. Использовать локальное хранилище в других местах?
- 4. C# один экземпляр в других местах
- 5. WP7 Применение стиля к нескольким кнопкам
- 6. Даты раскраски в CalendarView
- 7. Отчеты на рабочих местах WP7 «Исключение (-ы):« Нет »?
- 8. CSS Stacked иконки - Иконки укладка поверх других иконок
- 9. Отклонение в обратном направлении в других местах в памяти
- 10. TransactionScope работает в некоторых местах, а не в других.
- 11. Форматирование цифр и дат в других местах в C# /. NET
- 12. Предоставление видов в других местах в Yii2 - нет renderPartial?
- 13. Переименование файлов в RStudio, которые были получены в других местах
- 14. Размер иконок GTLDriveFile
- 15. Именование иконок
- 16. раскраски Мандельброта
- 17. Применение метода ActiveRecord для других проектов Ruby
- 18. Применение упаковочных рельсов Внутри других приложений
- 19. Зачем нам нужны «объекты» в DTD и других местах
- 20. Показать уроки/ресурсы урок Moodle в других местах
- 21. Таблица раскраски в JavaFX
- 22. Раскраски строк в TreeViewer
- 23. Раскраски в java
- 24. Сегменты раскраски в ggplot2
- 25. Объяснение для значений в Scharr-Filter, используемых в OpenCV (и других местах)
- 26. Android Растровые раскраски
- 27. Применение автоматической и скрытой фильтрации к списку <T>
- 28. Применение градиента фона для UIView с помощью автоматической раскладки
- 29. Custom Pushpin wp7
- 30. Как вы идете от идеи к реализации при разработке классов для других разработчиков в других местах?
Удивительный, спасибо. Любые идеи, как я мог бы сложить 2 изображения друг на друга, все еще используя эту технику? Я использую проверку и отменю изображения, которые поставляются с SDK, и я хотел бы нарисовать круг вокруг них (использовал изображение круга, которое поставляется вместе с SDK). – Zik
обрабатывать свойство 'Visible' каждого изображения – Ku6opr
Вы должны объявить стиль кнопки и использовать их. Пожалуйста, ознакомьтесь с моими изменениями – ebattulga