Zmiana koloru formy (lub czegokolwiek innego)

0

Witam,

Mam spory problem z tak prostą w teorii rzeczą jak zmiana koloru czegokolwiek. Używam MS Visual Studio 2013 express i uczę się pisać aplikacje na WP i na desktopa (ale dla sklepu Windows, nie na pulpit). Chce, żeby po naciśnięciu przycisku kolor formy zmieniał się na dowolny inny. Niestety nic nie pomaga. Szukałem informacji wszędzie ale wszyscy doradzają żeby użyć:

forma.BackColor = color.red;

To oczywiście nie działało, kompilator nawet nie podpowiadał mi tego BackColor a po wpisaniu wyświetlał błąd. Doczytałem, że tego używa się dla aplikacji Winform, więc usiłowałem użyć tego:

forma.Background = brushes.red;

Do background się nie czepia (z resztą to akurat logiczne, bo background jest w opcjach formy) ale nie pasuje mu brushes.

Dodam, że na bazie doświadczeń z Delphi wykombinowałem jak zmieniać np. opacity czy visibility, a z kolorem za chiny nie mogę dojść.

Istnieje jakiś prosty sposób na wytłumaczenie mi jak zmieniać ten kolor?

Pozdrawiam!

0

Próbowałeś szukać w dokumentacji?

0

@somekind po naciśnięciu F1 uruchamia się przeglądarka na stronę pomocy technicznej Visual Studio Express i jeżeli chodzi o te strony to przejrzałem je chyba dość dokładnie. Jest tam absolutnie oprócz tego. Albo po prostu nie wiem jak szukać.

0

A masz dodane using System.Windows.Media;?

0

Mam dodane to:

using Windows.UI.Xaml.Media;

Tego co podawałeś kompilator "nie rozumie" (podkreśla na czerwono człon Media)

0

Msdn mówi że Brushes działa na platformach Windows Phone 8.1, Windows Phone 8 a ty na czym to robisz?
Wpisz jakaśKontrolka.Background daj Ctrl+spacja jeśli nie pojawiła się podpowiedź i tam powinno pisać jakiego typu ta właściwość oczekuje.

0

Niezależnie czy jest to Windows czy Windows Phone nie rozpoznaje tego Brushes. Znalazłem inna metodę ale...

Przechwytywanie.PNG
Color przed = jest ok, ale już po = nie mogę go użyć.

W podpowiedziach do background nie ma niczego co by sugerowało kolor.

0

Problem jest w tym, że zanim napiszę Red lub cokolwiek innego po kropce i tak podkreśla mi color, a kod jak łatwo się domyślić jest (prawie) skopiowany (i to z dokumentacji), więc nie jest to mój wymysł. Ja tylko zmieniłem sobie zmienną na kolor bo ta od microsoftu była strasznie długa :)

0

Problem jest w tym, że próbujesz losowo sklejać ze sobą fragmenty kodu z różnych technologii i dziwisz się, że nie działa. Właściwość Red istnieje w strukturze System.Drawing.Color, ale to nie jest typ, którego możesz tu użyć.

  1. Jaki typ projektu utworzyłeś?
  2. Co masz w referencjach?
  3. Pokaż cały kod.
0

Kod nie za bardzo jest po co pokazywać. Jest tu tylko to całe kolorowanie bo aktualnie poznaje funkcje, których używałem z Delphi. Zacząłem od konwersji zmiennych, warunku IF i paru innych pierdół no i na kolorowaniu się zaciąłem.

Przepraszam, ale nie wiem o co chodzi z tymi referencjami.

Typ aplikacji do aplikacja dla Windows do sklepu.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238

namespace Kolorowanka
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        private void przelacznik_Toggled(object sender, RoutedEventArgs e)
        {
            SolidColorBrush kolor = new SolidColorBrush();
            kolor.Color = Color.FromArgb(255, 0, 0, 255);
            kwadrat.Fill = kolor;
        }


    }
}
1

Przepraszam, ale nie wiem o co chodzi z tymi referencjami.

W Solution Explorer - References
Spróbuj:

kwadrat.Fill = new SolidColorBrush(Windows.UI.Colors.Red);
0

Działa!

Swoją drogą bardziej już tego skomplikować nie mogli... Ja wiem, że Delphi jest przestarzałym i do tego raczej szkoleniowym językiem ale tam kolor się zmieniało w sposób banalny i logiczny.

0

Tu też jest banalne i logiczne. Nie wierze że VS nie podpowiadał jakiego typu obiektu oczekuje ten konstruktor lub właściwość.

0

No to będziesz musiał mi uwierzyć na słowo:)

Po prostu nie jestem przyzwyczajony do pisania dwóch metrów instrukcji zamiast

form1.Color:=clRed;

Zrozum człowieka który po raz pierwszy C# widzi :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1