Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WPF, Silverlight Новый топик    Ответить
 WPF C# Передача цвета из метода и использование его для фона, анимация  [new]
TwoRS
Member

Откуда:
Сообщений: 120
есть метод, который должен на основании значения выдать цвет, а потом надо в коде xaml на wpf к фону привязать этот метод, отдав ему значение Labela, таким образом, если лабел.текст=1, то его фон будет таким-то, а если 2, то другим....
подскажите пожалуйста, как такое сделать?

**
public Color PoluchitCvet(string vhodnoeznachenie)
{
switch (vhodnoeznachenie)
{
case "1":
return [здесь цвет1]// кстати, цвет не могу задать здесь
break;
case "2":
return [здесь цвет2]
goto case 1;
case "3":
return [здесь цвет3]
goto case 1;
default:
return [здесь цвет4]
break;
}
}

ну и если вдруг, кто знает, как сделать, что б при изменении значения лабела(например)
плавно менялся цвет...
т.е. сделать анимацию...
например было значение 2 [цвет фона 2] и вдруг значение лабела поменялось на 1, чтоб цвет фона изменился плавно скажем за 0.5 сек на [цвет фона 1]....может неочень выразился....(((
26 мар 12, 18:28    [12316538]     Ответить | Цитировать Сообщить модератору
 Re: WPF C# Передача цвета из метода и использование его для фона, анимация  [new]
TwoRS
Member

Откуда:
Сообщений: 120
break; вместо goto)))
26 мар 12, 18:38    [12316583]     Ответить | Цитировать Сообщить модератору
 Re: WPF C# Передача цвета из метода и использование его для фона, анимация  [new]
Esofter
Member

Откуда:
Сообщений: 69990
TwoRS
есть метод, который должен на основании значения выдать цвет, а потом надо в коде xaml на wpf к фону привязать этот метод, отдав ему значение Labela, таким образом, если лабел.текст=1, то его фон будет таким-то, а если 2, то другим....
подскажите пожалуйста, как такое сделать?


надо сделать биндинг на значение лейбла и написать конвертер значений лейбла в цвет, в котором и использовать этот метод.
5 апр 12, 01:56    [12368200]     Ответить | Цитировать Сообщить модератору
 Re: WPF C# Передача цвета из метода и использование его для фона, анимация  [new]
TwoRS
Member

Откуда:
Сообщений: 120
Esofter,

А можете пожалуйста какойнибудь пример написать, как это сделать?
я нашёл в книге Мэтью Макдоналда WPF 4.0 стр 609 подобное....не работает....
8 апр 12, 15:46    [12383265]     Ответить | Цитировать Сообщить модератору
 Re: WPF C# Передача цвета из метода и использование его для фона, анимация  [new]
Esofter
Member

Откуда:
Сообщений: 69990
1. Пишешь конвертер

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Windows.Data;
using System.Windows.Media;

namespace WpfApplication1
{
    class ColorConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            int val;
            if (Int32.TryParse(value.ToString(), out val))
            {
                switch (val)
                {
                    case 0:
                        return Brushes.Red;
                    case 1:
                        return Brushes.Green;
                    case 2 :
                        return Brushes.Blue;
                        default:
                        return default(Brushes);
                }
            }

            return default(Brushes);
        }

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


разметка такая

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:Converters="clr-namespace:WpfApplication1"
        Title="MainWindow" Height="284" Width="525">
    <Window.Resources>
        <Converters:ColorConverter x:Key="colorConverter" />
    </Window.Resources>
    <Grid>
        <Label Content="1"  x:Name="testLabel" Background="{Binding RelativeSource={RelativeSource Self},Path=Content,Converter={StaticResource colorConverter}}"/>
        <Button Width="Auto" Height="100" Content="Change label value" Click="Button_Click"/>
    </Grid>
</Window>


ну а кнопка просто меняет значение лейбла

private void Button_Click(object sender, RoutedEventArgs e)
        {
            testLabel.Content = new Random().Next(3);
        }
8 апр 12, 16:14    [12383327]     Ответить | Цитировать Сообщить модератору
 Re: WPF C# Передача цвета из метода и использование его для фона, анимация  [new]
TwoRS
Member

Откуда:
Сообщений: 120
Esofter,

Спасибо огромное!)))))
Сначала тупо скопировал.... а приложение у меня называется не wpfapplication1 ....думаю в чём дело?.....но потом допёрло))))
Спасибо)
8 апр 12, 16:40    [12383373]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: WPF C# Передача цвета из метода и использование его для фона, анимация  [new]
Али888
Member

Откуда:
Сообщений: 1
ПОМОГИТЕ СДЕЛАТЬ ПОЖАЛУЙСТА
Создать меню с командами Input color, Change, Exit, Help. При выборе команды Exit приложение завершает работу. При выборе команды Input color открывается диалоговое окно, содержащее:
 три поля ввода типа TextBox с метками Red, Green, Blue;
 группу из двух флажков (Left, Right) типа CheckBox;
 кнопку типа Button.
Обеспечить возможность ввода RGB-составляющих цвета. При выборе команды Change цвет главного окна изменяется на заданный (левая, правая или обе половины окна в зависимости от установки флажков).
24 дек 19, 15:07    [22047811]     Ответить | Цитировать Сообщить модератору
 Re: WPF C# Передача цвета из метода и использование его для фона, анимация  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21940
Пособие для студентов и школьников

И новый топик создавайте, если осталось желание получить помощь

Сообщение было отредактировано: 24 дек 19, 15:36
24 дек 19, 15:35    [22047837]     Ответить | Цитировать Сообщить модератору
Все форумы / WPF, Silverlight Ответить