Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WPF менять цвет с помощью slider 
V
    Опции темы
Cobalt
Дата 3.3.2010, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.8.2006

Репутация: нет
Всего: 1



Привет. может кто поможет. вопрос вроде нубский, но ничего похожего не нашел.
есть обычный слайдер, обычное окно, в нем допустим бордер.
как сделать так чтобы при движении слайдера менялся цвет бордера.

 smile 

ЗЫ я новичёк. 
--------------------
Стоишь на берегу И чувствуешь соленый запах ветра, Что веет с моря,И знаешь что свободен ты, и жизнь лишь началась....И губы жжет.. подруги поцелуй, Пропитанный слезой!
PM MAIL ICQ   Вверх
HalkaR
Дата 3.3.2010, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 5
Всего: 42



Прибиндить значение слайдера к Backgroung бордера через конвертер, который будет превращать число в цвет.
PM MAIL   Вверх
Fortnox
Дата 3.3.2010, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 31.10.2008
Где: Ростов-на-Дону

Репутация: нет
Всего: 22



Например так (пример прилагаю):
user posted image

Код:
Код

private void sliderRed_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            SetColor();
        }

        private void sliderGreen_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            SetColor();
        }

        private void sliderBlue_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
        {
            SetColor();
        }

        private void SetColor()
        {
            Brush brush = new SolidColorBrush(Color.FromRgb(
                (byte)sliderRed.Value,
                (byte)sliderGreen.Value,
                (byte)sliderBlue.Value));
            border.Background = brush;
        }


Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  WpfApplication1.zip 19,82 Kb
PM MAIL   Вверх
Cobalt
Дата 3.3.2010, 17:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.8.2006

Репутация: нет
Всего: 1



Fortnox,  спасибо, то что надо  smile 

сам бы до конструкции в сетколор не допер (
--------------------
Стоишь на берегу И чувствуешь соленый запах ветра, Что веет с моря,И знаешь что свободен ты, и жизнь лишь началась....И губы жжет.. подруги поцелуй, Пропитанный слезой!
PM MAIL ICQ   Вверх
HalkaR
Дата 4.3.2010, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

Репутация: 5
Всего: 42



Товарищи! Это же не наши методы. Это прошлый век. Решение в стиле WPF:

Конвертер:
Код

using System;
using System.Globalization;
using System.Windows.Data;
using System.Windows.Media;

namespace WpfApplication1
{
    public class IntToColorConverter : IMultiValueConverter
    {
        #region IMultiValueConverter Members

        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            return new SolidColorBrush(Color.FromRgb(
                (byte) (double) values[0],
                (byte) (double) values[1],
                (byte) (double) values[2]));
        }

        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}

Окно:
Код

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:WpfApplication1="clr-namespace:WpfApplication1" Title="Window1" Height="300" Width="300">
    <Grid>
        <Grid.Resources>
            <WpfApplication1:IntToColorConverter x:Key="colorConverter"/>
        </Grid.Resources>
        <Border Margin="0,0,0,105" Name="border">
            <Border.Background>
                <MultiBinding Converter="{StaticResource colorConverter}" Mode="OneWay">
                    <Binding ElementName="sliderRed" Path="Value"/>
                    <Binding ElementName="sliderGreen" Path="Value"/>
                    <Binding ElementName="sliderBlue" Path="Value"/>
                </MultiBinding>
            </Border.Background>
        </Border>
        <Slider Height="21" Margin="66,0,0,70" Name="sliderRed" VerticalAlignment="Bottom" SmallChange="1" Maximum="255" />
        <Slider Height="21" Margin="66,0,0,40" Name="sliderGreen" VerticalAlignment="Bottom" Maximum="255" SmallChange="1" />
        <Slider Height="21" Margin="66,0,0,9" Name="sliderBlue" VerticalAlignment="Bottom" SmallChange="1" Maximum="255" />
        <Label Height="31" HorizontalAlignment="Left" Margin="0,0,0,60" Name="labelRed" VerticalAlignment="Bottom" Width="46">Red:</Label>
        <Label Height="31" HorizontalAlignment="Left" Margin="0,0,0,30" Name="labelGreen" VerticalAlignment="Bottom" Width="46">Green:</Label>
        <Label Height="31" HorizontalAlignment="Left" Name="labelBlue" VerticalAlignment="Bottom" Width="46">Blue:</Label>
    </Grid>
</Window>

Код окна:
Код

using System.Windows;

namespace WpfApplication1
{
    /// <summary>
    /// Логика взаимодействия для Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
    }
}


Это сообщение отредактировал(а) HalkaR - 4.3.2010, 14:11
PM MAIL   Вверх
Fortnox
Дата 4.3.2010, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 31.10.2008
Где: Ростов-на-Дону

Репутация: нет
Всего: 22



HalkaR, я WPF только начал изучать, поэтому предложил решение в стиле C# Windows Forms.  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0626 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.