myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » GUI: WPF und XAML » UserControl Contentpresenter funktioniert nicht
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

UserControl Contentpresenter funktioniert nicht

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
ByteDevil ByteDevil ist männlich
myCSharp.de-Mitglied

avatar-4066.png


Dabei seit: 02.03.2013
Beiträge: 121
Entwicklungsumgebung: VS 2019 Pro


ByteDevil ist offline

UserControl Contentpresenter funktioniert nicht

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

ich möchte ein Control basteln, welches eine spezielle Form hat und aus einem Button besteht, sowie einem Rechteck auf dem der Content als string ausgegeben wird.

Folgendes habe ich bisher:

XML-Code:
<UserControl x:Class="UserControlTest.FilterControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:local="clr-namespace:UserControlTest"
             mc:Ignorable="d"
             Height="25" Width="117.833"
>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="20"/>
        </Grid.ColumnDefinitions>
        <Rectangle Fill="#FFA0A0A0"/>
        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
        <Polygon Grid.Column="1" Points="0,0 20,12.5 0,25" Fill="#FFA0A0A0"/>
        <Button Width="9" Height="9" Grid.Column="1" Margin="2,7.5,8,7.5" Click="Button_Click">
            <Button.Template>
                <ControlTemplate TargetType="Button">
                    <Grid>
                        <Ellipse Stroke="Black" StrokeThickness="1"/>
                        <Line X1="7.5" Y1="7.5" X2="1.75" Y2="1.75" Stroke="Black"/>
                        <Line X1="7.5" Y1="1.75" X2="1.75" Y2="7.5" Stroke="Black"/>
                    </Grid>
                </ControlTemplate>
            </Button.Template>
        </Button>
    </Grid>
</UserControl>

Das sieht soweit im designer ganz gut aus. Instanziiere ich das Ganze nun aber, ist lediglich der text zu sehen und alles andere ist weg. Ausser ich weise keinen Content zu, dann sieht es aus wie im designer.

Was mache ich denn falsch?

Grüße
Neuer Beitrag 01.07.2019 13:13 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
p!lle
myCSharp.de-Mitglied

avatar-3556.jpg


Dabei seit: 22.02.2007
Beiträge: 1.032
Entwicklungsumgebung: Visual Studio (Community) 2019


p!lle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Nimm als Basis ein ContentControl anstatt ein UserControl.
Neuer Beitrag 01.07.2019 13:15 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
ByteDevil ByteDevil ist männlich
myCSharp.de-Mitglied

avatar-4066.png


Dabei seit: 02.03.2013
Beiträge: 121
Entwicklungsumgebung: VS 2019 Pro

Themenstarter Thema begonnen von ByteDevil

ByteDevil ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Leider verhält es sich dann genauso :( Nutze ich den ContentPresenter nicht richtig?
Neuer Beitrag 01.07.2019 13:35 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
p!lle
myCSharp.de-Mitglied

avatar-3556.jpg


Dabei seit: 22.02.2007
Beiträge: 1.032
Entwicklungsumgebung: Visual Studio (Community) 2019


p!lle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Vermutlich ist das Problem, dass es ein "komplettes" UserControl ist.
Dass was du möchtest ist eher ein Custom Control:
 https://blogs.msdn.microsoft.com/windows...ing-xaml-and-c/

Bei Custom Controls trennt man quasi Code und XAML voneinander. Deine Klasse kann dann von einem ContentControl erben.

fröhlich

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von p!lle am 01.07.2019 13:41.

Neuer Beitrag 01.07.2019 13:40 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
pinki
myCSharp.de-Mitglied

avatar-4072.jpg


Dabei seit: 24.08.2008
Beiträge: 683
Herkunft: OWL


pinki ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hat dein FilterControl eine Content-Eigenschaft, aus der der ContentPresenter seinen Inhalt beziehen kann?
Neuer Beitrag 01.07.2019 13:42 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
ByteDevil ByteDevil ist männlich
myCSharp.de-Mitglied

avatar-4066.png


Dabei seit: 02.03.2013
Beiträge: 121
Entwicklungsumgebung: VS 2019 Pro

Themenstarter Thema begonnen von ByteDevil

ByteDevil ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von p!lle:
Vermutlich ist das Problem, dass es ein "komplettes" UserControl ist.
Dass was du möchtest ist eher ein Custom Control:
 https://blogs.msdn.microsoft.com/windows...ing-xaml-and-c/

Bei Custom Controls trennt man quasi Code und XAML voneinander. Deine Klasse kann dann von einem ContentControl erben.

fröhlich

Dann erstellt mir VS keine XAML datei verwundert

@pinki: Ja es erbt wohl eine Content-Eigenschaft.
Neuer Beitrag 01.07.2019 13:47 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
p!lle
myCSharp.de-Mitglied

avatar-3556.jpg


Dabei seit: 22.02.2007
Beiträge: 1.032
Entwicklungsumgebung: Visual Studio (Community) 2019


p!lle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von ByteDevil:
Dann erstellt mir VS keine XAML datei :baby:

Das ist korrekt, die musst du selber anlegen.
Stichwort: ResourceDictionary

Zitat von ByteDevil:
@pinki: Ja es erbt wohl eine Content-Eigenschaft.

In deinem UserControl definierst du den kompletten Content, "von außen" überschreibst du ihn dann wieder. Deswegen geht es nicht.

Schau dir auch mal die Property "ContentTemplate" an.
Neuer Beitrag 01.07.2019 13:53 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
KroaX KroaX ist männlich
myCSharp.de-Mitglied

avatar-4080.jpg


Dabei seit: 31.08.2009
Beiträge: 298
Herkunft: Köln


KroaX ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Weitere Infos kannst du hier finden.

 https://www.wpftutorial.net/HowToCreateACustomControl.html
Neuer Beitrag 01.07.2019 15:06 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als ein Jahr.
Der letzte Beitrag ist älter als ein Jahr.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 18.09.2020 16:42