Hallo,
in welchem Container kann ich belibig Controls hinzufügen, welcher aber selbst in einer Viewbox positioniert werden kann.
Endergebnis soll sein dass alle Controls mit dem Elternfenster skaliert werden ohne Code zu schreiben.
gruß Thorsten
Hallo eclere,
hm, ganz genau habe ich es nicht verstanden, aber ich denke: Panel.
herbivore
Hallo herbivore,
einen reinen Panel gibt es in WPF leider nicht. Ich denke mal der Ersatz wird wohl Canvas sein. Bei diesem kann ich aber keine StackPanel einfügen.
Weite Infos gibts hier: http://msdn.microsoft.com/winfx
gruß Thorsten
Hallo eclere,
sorry, hatte das WPF ganz überlesen. Canvas klingt gut.
Unter WindowsForms kann man alles Controls - also auch alle Container - in alle Container packen. Sollte das in WPF nicht mehr so sein?
Oder mischt du Windows-Forms mit WPF?
herbivore
Hallo,
irgendwo habe ich WPF betreffend mal gehört man könne alles in alles packen. Dem ist aber nicht so. Entweder mit Absicht, oder weil noch alles beta ist.
Die Viewbox ist so ein Beispiel. Sie kann nur ein Child enthalten.
Genauso funktioniert Viewbox->Canvas->Stackpanel nicht.
Ich dachte erst die Kombination aus Margin, Width und Height wäre der richtige Weg. Dann ändern sich die Positionen der Controls aber nicht.
Nein, ich probiere mich nur an WPF.
gruß Thorsten
einen reinen Panel gibt es in WPF leider nicht. Ich denke mal der Ersatz wird wohl Canvas sein. Bei diesem kann ich aber keine StackPanel einfügen.
Kann ich ehrlich gesagt nicht nachvollziehen, was du meinst.
<Page
xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"
xmlns="http://schemas.microsoft.com/winfx/avalon/2005">
<Viewbox>
<Canvas Width="60" Height="60">
<StackPanel>
<Button>1. Button</Button>
<Button>2. Button</Button>
</StackPanel>
</Canvas>
</Viewbox>
</Page>
irgendwo habe ich WPF betreffend mal gehört man könne alles in alles packen. Dem ist aber nicht so. Entweder mit Absicht, oder weil noch alles beta ist.
Bei WPF wird halt im Gegensatz zu Windows Forms, oder ähnlichen GUI Bibliotheken die Möglichkeit angeboten bei vielen Controls irgendetwas als Inhalt einzufügen, nicht wie früher z.B: nur Text für einen Button oder ähnliches. Durch die Kombination mit Panels, also als konkretes "irgendetwas", kann man eben somit quasi "alles in alles" packen, was natürlich nicht ganz stimmt, denn die entscheidende Basisklasse ist dabei ContentControl.
Wofür willst du denn jetzt die Viewbox konkret verwenden, denn eventuell bist du mit anderen Panels besser aufgehoben, die ähnliche Funktionalität bieten?
Hallo Bernhard,
Dein Code war auch mein erster Gedanke. Leider stürzt so mei mir immer die IDE ab. Daher bin ich davon ausgegangen das es nicht geht. Zumindest jetzt noch nicht.
Generell möchte ich bequem ein ganzes Set an Controls im Fenster skalieren. Ob dafür die Viewbox das richtige ist, weiß ich noch nicht. Ich probiere ja noch. Generell traue ich das WPF aber ohne Code zu.
Vielleicht kennst Du WindowsMCE. Im Prinzip hätte ich gerne so eine Skalierung.
gruß Thorsten
Dein Code war auch mein erster Gedanke. Leider stürzt so mei mir immer die IDE ab. Daher bin ich davon ausgegangen das es nicht geht. Zumindest jetzt noch nicht.
Kann ich jetzt nicht nachvollziehen wieso, da ich die Visual Studio Extensions nicht zur Hand habe. Ich verwende halt für so kleine Spielerein das XamlPad, ist eh im SDK dabei.
Generell möchte ich bequem ein ganzes Set an Controls im Fenster skalieren. Ob dafür die Viewbox das richtige ist, weiß ich noch nicht. Ich probiere ja noch. Generell traue ich das WPF aber ohne Code zu.
Die Viewbox wird eigentlich nicht verwendet um was anderes als Zeichnungen zu skalieren, da auch nur ein Satz von Shapes skaliert wird. Am besten vergleichst du dazu einfach mal die Variante mit und ohne Viewbox, denn der Unterschied dürfte dir eh schnell auffallen (du wärst beinahe blind, wenn nicht).
<Page
xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"
xmlns="http://schemas.microsoft.com/winfx/avalon/2005">
<Viewbox>
<Button>Click me!</Button>
</Viewbox>
</Page>
<Page
xmlns:x="http://schemas.microsoft.com/winfx/xaml/2005"
xmlns="http://schemas.microsoft.com/winfx/avalon/2005">
<DockPanel>
<Button>Click me!</Button>
</DockPanel>
</Page>
In diesem Beispiel hab ich jetzt einfach DockPanel verwendet, aber je nach Bedarf dürften sich auch andere Panels anbieten, wie StackPanel und besonders Grid.
grüße
Bernhard Huemer
Hallo,
Danke erstmal. Ich werd mich da wohl noch länger einarbeiten müssen.
gruß Thorsten