Laden...

Überschreiben von XAML Properties WP7

Erstellt von ScoobyDoh! vor 13 Jahren Letzter Beitrag vor 13 Jahren 3.596 Views
ScoobyDoh! Themenstarter:in
69 Beiträge seit 2010
vor 13 Jahren
Überschreiben von XAML Properties WP7

Hallo,

ich schreibe Programme für das Windows Phone 7, oder bin besser gesagt auf den Weg dorthin.
Ich hab aber allerdings eine Grundsatzfrage worüber ich schon des öfteren im internet gesucht und auch schon mehrere Bücher durchgewältz habe.

Und zwar geht es um das simple überschreiben von in XAML definierten Properties, wie z.B. Hintergrundfarbe eines Buttons.

Und zwar möcht ich büer den Code Behind (C#) eben dies Properties enden.. z.B. macht eine Button beschriftung unter einem neuen Kontext keinen Sinn, oder ich möcht die Farbe anpassen, oder sogar die Position bestimmter Elemente.

Jedoch ist das nicht immer so einfach wie bei der Beschriftung eines buttons.
name.Content = "anderer Button name"

funktioniert nicht imemr so einfach.

Deswegen meine Frage gibt es eine Datenbank wo eben genau das beschrieben ist?
Und ich möchte nicht alles im Code generieren! Gehen wir davon aus das die Oberfläche on Exxpression Blend zusammengeklickt und vom Code Behind aus modifiziert wird.

Danke schonmal fürs Lesen

:::

6.862 Beiträge seit 2003
vor 13 Jahren

Ich weiß nicht genau was du meinst, aber in der MSDN Library ist doch alles beschrieben. Sämtliche Member aller Klassen und die Beschreibung was die machen. Dort steht auch welche Properties was ändern.

Was die Gestaltung der GUI angeht hat Silverlight da verschiedenste Möglichkeiten. Mit Styles und Templates kannst du praktisch alles ändern.

Baka wa shinanakya naoranai.

Mein XING Profil.

ScoobyDoh! Themenstarter:in
69 Beiträge seit 2010
vor 13 Jahren

Danke für die Antwort.

Naja ich möchte aus dem C# Code heraus, eben Properties ändern.
Nehmen wir mal ein Beispiel:

ich hab 3 Slider und möchte damit die Farbe eines Quadrats ändern.
Praktisch eine RGB Farbenwähler, wo die Slider eben einen Wertebereich von 0 - 256 haben.

Da hilft mir ja das arbeiten mit Styles nicht.

Im Falle eines Buttons kann ich z.B. die Beschriftung sehr einfach ändern

button1.content = "string";

Aber wie kann ich denn auf weitere Properties zugreifen.
Ich hätte nämlich hier auch ein Programm was in einem bestimmten Kontext das Kippen des Handys (SupportedOrientations) eben nicht zulassen sollte, aber später dann doch wieder.

Ich finde keine Referenz wie auf die Properties zugreifen kann.
Welcher Datentyp die eine oder andere Definition braucht.

So ich hoff ich habs verständlicher gemacht.

danke für die Antwort
gruß ScoobyDoh!

:::

6.862 Beiträge seit 2003
vor 13 Jahren

Hallo,

Im konkreten Farbbeispiel reagierst du einfach im entsprechenden Event (müsste wohl ValueChanged oder so beim Slider heißen) auf den neuen Wert und erzeugst damit nen neues Colorobjekt wo du dann dem Quadrat zuweist (das ist zumindest die einfache, nicht ganz so elegante Lösung)

Aber ansonsten blick ich ehrlich gesagt immer noch nicht wo dein Problem ist. Wie gesagt findest du in der MSDN Library zu allen Properties die Beschreibung, inklusive Typen, Verwendungsszenarien etc. Wie du jeweils auf die Properties, bzw. deren Änderungen bzw. Events reagierst ist doch vollkommen deine Sache.

Baka wa shinanakya naoranai.

Mein XING Profil.

ScoobyDoh! Themenstarter:in
69 Beiträge seit 2010
vor 13 Jahren

Naja ok ... danke derweil
Es wär aber ganz praktisch wenn du mir den Link auch mal schicken würdest.. wo denn die Properties usw.. aufgelistet sind.

Ich finds nämlich einfach nicht.^^

:::

6.862 Beiträge seit 2003
vor 13 Jahren

Also wenns daran schon scheitert obwohl du gesagt bekommen hast wies heißt, hast du noch viel vor dir.
[Hinweis] Bitte schau in die SDK-/MSDN-Doku

Baka wa shinanakya naoranai.

Mein XING Profil.

ScoobyDoh! Themenstarter:in
69 Beiträge seit 2010
vor 13 Jahren

Gut, danke 😉
Nur kenn ich die Libarys und wie man damit umgeht.

Ich sucht nur eine Bibliothek oder eben eine Information und zwar:
"Wie kann ich während der runtime die bestehende Oberfläche die in XAML definiert ist ändern,bzw. auf die properties der einzelnen in XAML definierten Objekte zugreifen"

Dazu find ich nämlich nichts in der libary, hab mir das schon den Wolf gesucht.

Und wenn ich nach allgemeinen Informationen über das Thema suche find ich oft leute die meinen, man sollte sich die Oberfläche gleich im C# generieren, aber genau das möchte ich eigentlich nicht, wenn ich doch scon auf dem WP7 die möglichkeit hab mit Expression Blend zu arbeiten.

Es ist nämlich so das ich die Attribute von den XAML Objekten zwar schon auslesen kann im Code (also damit mein ich das ich das soweit gecheckt hab 😄 ), aber wenn ich mit name.property einen neuen Wert zuweisen will, schmeist er mir meist einen Typconvertierungskonflikt vor.

Das arbeiten mit styles in xaml hab ich mir auch schon angeschaut, ist mir aber auch zu statisch, wenns net hiflt werd ich halt auch die Elemente die ich eben dynamisch haben will im Code Behind definieren, aber das möcht ich eigentlich nicht.

Nur eben find ich in der msdn libary keine Infos darüber, oder eben ein Liste welche Property welchen Datentyp verwendet. Ich werd aber auch net schlauer wenn ich in MS Visual sag (Gehe zu Definition) da kann ich auch nicht rauslesen, welchen Datentyp er jetz genau will.

Ich habe nur die vermutung das ich mich hier bei was aufhäng was so wie ich mir das vorstell überhaupt nicht funktioniert.

Hab leider bis jetz keine Erfahrungen mit Silverlight gemacht.

:::

363 Beiträge seit 2007
vor 13 Jahren

Ich glaub du denkst einfach zu kompliziert. Egal ob das Object in xaml oder im Codebehind definiert ist. Du kannst darauf normal zugreifen, wichtig ist bei xaml nur das das Object auch eine id hat, über diese erfolgt der Zugriff.
Alles andere ist simple Eventsteuerung, mit Styles kannst du dann das grundlegende Verhalten/Aussehen ändern.
Ein normales ändern von Propertys sollte kein Problem darstellen. Wenn du einen Typkonvertierungsfehler bekommst, dann musst du eben schauen was erwartet wird und dann entsprechend handeln. Beachte hierbei auch implizite und explizite Typkonvertierung, ich vermute mal das hier dein Problem liegt.

Gruß Cookiie

"Hail to the King, Baby!"

6.862 Beiträge seit 2003
vor 13 Jahren

Hallo,

in der MSDN Lib steht zu jedem Property was es für nen Typ ist. Die Aussage dass du keine Infos darüber dort findest ist einfach nicht wahr.

Wenn du nicht weißt wie du was ändern musst um bestimmte Effekte zu erreichen, dann fehlt einfach das Grundwissen wie in WPF (bzw. hier ja Silverlight) Controls aufgebaut sind, wie was funktioniert etc. und da hilft nur ein: nen Buch schnappen und sich da durchackern. Da kann kein Forum helfen.

Baka wa shinanakya naoranai.

Mein XING Profil.

ScoobyDoh! Themenstarter:in
69 Beiträge seit 2010
vor 13 Jahren

Danke für eure Antworten,

...
Wenn du nicht weißt wie du was ändern musst um bestimmte Effekte zu erreichen, dann fehlt einfach das Grundwissen wie in WPF...

eben genau das, hab bis jetz was MS Technologie angeht nur in XNA Programmiert.
Hätt ich noch erwänen sollen das ich ein Newbie bin auf dem Silverlight/WPF Gebiet.

...
in der MSDN Lib steht zu jedem Property was es für nen Typ ist. Die Aussage dass du keine Infos darüber dort findest ist einfach nicht wahr....

Eben von XNA kenn ich die MSDN Lib, super Sache, das is klar und vollkommen ausführlich.

Jo, Danke für den Arschtritt... ^^
Jetz find ich was ich suche ^^

Aber ich wollt ja eigentlich wissen ob eine Tabelle existiert, wo die Properties mit ihren Typen schön aufgelistet sind, oder eben nur die Properties.

...
Wenn du einen Typkonvertierungsfehler bekommst, dann musst du eben schauen was erwartet wird und dann entsprechend handeln. Beachte hierbei auch implizite und explizite Typkonvertierung, ich vermute mal das hier dein Problem liegt.

Vielen Dank für den Tipp... echt krass was man alles vergisst wenn man ein paar Monate Programmierungstechnisch auf den Trockenen sitzt.

:::

363 Beiträge seit 2007
vor 13 Jahren

Hi,

dann empfehle ich gleich mal noch das C# Openbook, das Kapitel über WPF ist für den Einstieg sehr zu empfehlen. Visual C# 2010 klickst du

Gruß Cookiie

"Hail to the King, Baby!"