Laden...

Dynamische Rahmen um Controls zeichnen

Erstellt von blutiger_anfänger vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.648 Views
B
blutiger_anfänger Themenstarter:in
293 Beiträge seit 2008
vor 15 Jahren
Dynamische Rahmen um Controls zeichnen

Guten Miattag euch allen,
ich ahbe mal wieder eine kleine Denkblockade.
Ich habe einen kleinen Mediaplayer. Das VideoControl besitzt jedoch keinerlei Rahmen, was nicht gerade schön aussieht, wenn das "blanke" Video auf dem Form liegt.
nun wollte ich gerne einen Rahmen drumherum haben. Zuerst hatte ich mir überlegt, einfach eine PictureBox hintersetzen und die mit einem vorgefertigten Rahmen befüllen.
Doch das funktioniert nur solange das Form nicht in seiner Größe verändert wird. Sobald ich das Form strecke, wird und soll ja auch das VideoControl mitgestreckt werden. Das haut dann aber mit meinem Rahmen nicht mehr hin.

Gibt es da villeicht eine Lösung wie per Html+Css das man nur ein Stückchen des Rahmens angibt und sagt, dass diese Grafik auf der x-/y-Achse beliebig oft wieder eingeblendet wird?

liebe Grüße,
ein blutiger_anfänger

Wenn ich nicht hier bin, findest du mich auf code-bude.net.

Gelöschter Account
vor 15 Jahren

Gibt es da villeicht eine Lösung wie per Html+Css das man nur ein Stückchen des Rahmens angibt und sagt, dass diese Grafik auf der x-/y-Achse beliebig oft wieder eingeblendet wird?

nein.

du musst entweder das videocontrol dazu bewegen, das video kleiner zu zeichnen und drum herum entsprechend einen rahmen zu ziehen oder aber ein usercontrol erstellen und ein control als rahmen gebrauchen, wobei innen drinn das videocontrol ist.

B
blutiger_anfänger Themenstarter:in
293 Beiträge seit 2008
vor 15 Jahren

An die Sache mit dem UserControl habe ich auch shcon gedacht, aber ich habe keine Ahnung, wie ich das Umsetzen soll. (Also nicht das erstellen des UserControls, sondern das der eigene Rahmen "resizeable" ist.)

Ich habe mal ein Bild als Beispiel angehängt. theoretisch müsste ich doch den Rahmen irgendwie an den blauen Linien zerschneiden. und je nach dem, wie weit ich das Form strecke müssten, die kurzen Rahmenabschnitte zwischen den blauen Linien immer wieder aneinander-gezeichnet werden, oder? Bloß wie stelle ich das an? Ich versteh grad halt auch nciht, inwiefern mich da ein UserControl weiterbringen kann...

liebe Grüße und trotzdem schonmal Danke für die Antwort,
ein blutiger_anfänger

Wenn ich nicht hier bin, findest du mich auf code-bude.net.

Gelöschter Account
vor 15 Jahren

Ich habe mal ein Bild als Beispiel angehängt. theoretisch müsste ich doch den Rahmen irgendwie an den blauen Linien zerschneiden. und je nach dem, wie weit ich das Form strecke müssten, die kurzen Rahmenabschnitte zwischen den blauen Linien immer wieder aneinander-gezeichnet werden, oder? Bloß wie stelle ich das an? Ich versteh grad halt auch nciht, inwiefern mich da ein UserControl weiterbringen kann...

du denkst zu sehr in web.

es ist einfacher als du denkst. nimm ein usercontrol. schieb ein panel rein mit dockstyle.fill
gib dem panel ein Backgroundimage und setze es auf stretch. füge nun dein videocontrol hinzu und positioniere es so wie du es haben willst (also mit abstand zu den rändern.
setze Anchor auf alle 4 seiten.
-> fertig.

B
blutiger_anfänger Themenstarter:in
293 Beiträge seit 2008
vor 15 Jahren

Habe das gerade mal ausprobiert. Entweder ich versteh hier immernoch was falsch, oder ich hab doch garnicht zu sehr "web"-gedacht.
Denn wenn ich mein Form nun maximiere, vergrößert sich mein UserControl um locker 100% seiner ursprünglichen Größe und der Rahmen sieht gestreckt einfach nur doof aus. Sprich er verpixelt, etc..

Hatte grad noch eine Idee, auch wenn das vielleicht eine etwas unschöne Frickelei ist.
Ich nehme mir 8 Pictureboxen. Für jede der Ecken eine und dann, wie schon auf dem Bild angedeutet, für die Seiten auch jeweils eine. Die für die Seiten bekommen als BackgroundImage den entsprechenden kleinen Teil des Rahmen und das backgroundImageLayout kommt auf Tile.
Das ist zwar in deinen Augen wahrscheinlich extrem in Richtung Web gedacht, aber die andere Lösung verzerrt das Ergebnis, was auch nicht wirklich schön ist...

Wenn ich nicht hier bin, findest du mich auf code-bude.net.

Gelöschter Account
vor 15 Jahren

nien, 8 pictureboxen wäre absolut oversized.

mach dir lieber eine eigene picturebox, die in der onpaint so ein bitmap redundant zeichnet.