Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

03.03.2011, 13:48

wpf control kopieren

hallo.

ich kenn mich mit wpf noch nicht so wirklich aus von daher steh ich grad etwas an und google hat mir auch nichts wirklich brauchbares geben können.

konkret hab ich folgendes problem:

ich möchte eine art groupbox template haben in der ich 8 buttons hab und 8 labels.

Und ich möchte dann zur laufzeit beliebig viele dieser groupboxen erstellen...


kann ich mir wie bei winforms auch einfach ein eigenes control von gropubox ableiten?
kann diese eigene groupbox dann meine buttons uns labels haben?

lg

DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

2

03.03.2011, 14:40

Du kannst ein WPF UserControl erstellen und dort all deine Elemente reinpacken und dann dieses UserControl instanziieren. Auch ist es möglich Templates zu erstellen und diese dann zu erstellen.

http://www.smart-techie.com/blog/2006/12…plates-in-xaml/
http://mark-dot-net.blogspot.com/2007/07…emplate-in.html

3

03.03.2011, 15:05

ja danke! hab ich dann auch so etwa gemacht.

ich hatte auch noch das problem, dass die restliche applikation mit winforms gemacht wurde.

jetzt hab ich mir ein wpf window erstellt und dort hau ich meine wpf usercontrols rein...

danke für deine hilfe

lg

4

03.03.2011, 15:58

ok ein problem hab ich aber noch...

ich hab mir eben ein usercontrol gemacht... da sind 1 label und 8 buttons drin.
dann hab ich unter den 8 buttons(sind in einer reihe) auch noch einen expander, welcher labels enthält.
wenn der ausgeklappt is, dann stehen unter den buttons namen.

jetzt is die sache die, dass ich gerne hätte, dass sich die größe des usrcontrols an den expander anpasst... also größer und kleiner wird je nachdem ob der expander ein oder ausgeklappt. ist.

ich hab gegoogelt und kam zur lösung height und width nicht anzugeben beim usercontrol -->ohne erfolg.
auch ein : sizetocontent property hat usercontrol leider nicht...

weiß einer von euch, wie ich so etwas bewerkstelligen könnte?

lg Aly

DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

5

03.03.2011, 16:37

Kannst du die xaml mal zeigen? Ich habe grade leider nicht im Kopf wie sich der Inhalt eines Expanders verhält, wie schauts mit dem HorizontalAlignment und dem VerticalAlignment aus, hast du daran etwas verstellt?

6

07.03.2011, 08:58

sry, dass ich mich jetzt erst zurückmelde...

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<UserControl x:Class="TestStationV3.Forms.RegGroupBox"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Background="WhiteSmoke">
    <Grid >
        <Label Height="23" HorizontalAlignment="Left" Margin="18,0,0,0" Name="label1" VerticalAlignment="Top" Width="58">RegName</Label>
        <Button Height="23" Margin="82,0.138,0,0" Name="button1" VerticalAlignment="Top" HorizontalAlignment="Left" Width="23">bit</Button>     
        <Expander Header="Names:" Margin="11.498,29,13,0" Name="expander1">
            <Grid>
                <Label HorizontalAlignment="Left" Margin="64,4,0,0" Name="label2" Width="30">bit1</Label>
                <Label HorizontalAlignment="Left" Margin="114,4,0,0" Name="label3" Width="30">bit2</Label>
                <Label HorizontalAlignment="Left" Margin="157,4,0,0" Name="label4" Width="30">bit3</Label>
                <Label Margin="203,4,200,0" Name="label5">bit4</Label>
                <Label HorizontalAlignment="Right" Margin="0,4,157,0" Name="label6" Width="30">bit5</Label>
                <Label HorizontalAlignment="Right" Margin="0,4,114,0" Name="label7" Width="30">bit6</Label>
                <Label HorizontalAlignment="Right" Margin="0,4,67,0" Name="label8" Width="30">bit7</Label>
                <Label HorizontalAlignment="Right" Margin="0,4,18,0" Name="label9" Width="30">bit8</Label>
            </Grid>
        </Expander>
        <Button Height="23" HorizontalAlignment="Left" Margin="127,0.139,0,0" Name="button2" VerticalAlignment="Top" Width="23">bit</Button>
        <Button Height="23" HorizontalAlignment="Left" Margin="176,0.139,0,0" Name="button3" VerticalAlignment="Top" Width="23">bit</Button>
        <Button Height="23" Margin="227,0.139,223,0" Name="button4" VerticalAlignment="Top">bit</Button>
        <Button Height="23" HorizontalAlignment="Right" Margin="0,0.139,178,0" Name="button5" VerticalAlignment="Top" Width="23">bit</Button>
        <Button Height="23" HorizontalAlignment="Right" Margin="0,0.139,128,0" Name="button6" VerticalAlignment="Top" Width="23">bit</Button>
        <Button Height="23" HorizontalAlignment="Right" Margin="0,0.139,81,0" Name="button7" VerticalAlignment="Top" Width="23">bit</Button>
        <Button Height="23" HorizontalAlignment="Right" Margin="0,0.139,38,0" Name="button8" VerticalAlignment="Top" Width="23">bit</Button>
    </Grid>
</UserControl>


das is der xaml code des usercontrols...

lg

DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

7

07.03.2011, 09:17

Wie sieht denn die XAML aus in der du dein UserControl auch verwendest? Auf dem ersten Blick sieht das UserControl ansich ok aus, was die Resize Logik betrifft.

8

07.03.2011, 11:55

<Window x:Class="TestStationV3.Forms.RegGui"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TestStationV3.Forms"
Height="444" Width="539" Background="WhiteSmoke">
<Grid Background="White">
<local:RegGroupBox VerticalAlignment="Top" Margin="20.825,12,22.491,0" Background="WhiteSmoke"/>
</Grid>
</Window>

Werbeanzeige