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 Silverlight » Wie kann ich außerhalb des ContentPresenters ein Image über das Binding setzen?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

Wie kann ich außerhalb des ContentPresenters ein Image über das Binding setzen?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Snoppie
myCSharp.de-Mitglied

Dabei seit: 21.04.2019
Beiträge: 2


Snoppie ist offline

Wie kann ich außerhalb des ContentPresenters ein Image über das Binding setzen?

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

Guten Abend zusammen,

ich würde mich riesig über Hilfe bei einem Problem in sachen Binding freuen.

Es geht um das Binding einer Image-Source in einem Style. Ich würde gerne die Image über
das "MainWindow" setzen und finde aber keine wirkliche Hilfe die mir erklärt, wie ich außerhalb
des ContentPresenter etwas über das Binding setzen kann.

Zum besseren Verständnis, da ich keine Ahnung habe wie ich mich richtig ausdrücken soll, der Sytle:

XML-Code:
<Style x:Key="RadioButtonMenu" TargetType="{x:Type RadioButton}">

        <Setter Property="Foreground" Value="White"/>
        <Setter Property="HorizontalContentAlignment" Value="Center"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>

        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type RadioButton}">


                    <Grid Name="MainBG" Background="Transparent">

                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="6" />
                            <ColumnDefinition Width="6" />
                            <ColumnDefinition Width="16" />
                            <ColumnDefinition Width="32" />
                            <ColumnDefinition Width="16" />
                            <ColumnDefinition Width="6" />
                            <ColumnDefinition Width="6" />
                        </Grid.ColumnDefinitions>

                        <Grid.RowDefinitions>
                            <RowDefinition Height="16"/>
                            <RowDefinition Height="16"/>
                            <RowDefinition Height="16"/>
                            <RowDefinition Height="20"/>
                            <RowDefinition Height="12"/>
                        </Grid.RowDefinitions>

                        <Image Name="imgMenu" Grid.Column="3" Grid.ColumnSpan="1" Grid.Row="1" Grid.RowSpan="2" Source="{Binding Path=Source, RelativeSource={RelativeSource TemplatedParent}}"/>

                        <Grid Grid.Column="1"  Grid.ColumnSpan="5" Grid.Row="3" Grid.RowSpan="1" Background="Transparent">
                            <ContentPresenter x:Name="contentPresenter"
                                              Focusable="False"
                                              HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                              Margin="{TemplateBinding Padding}"
                                              RecognizesAccessKey="True"
                                              SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
                                              VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
/>
                        </Grid>

                        <Grid Name="BarSelection" Grid.Column="0" Grid.ColumnSpan="1" Grid.Row="0" Grid.RowSpan="5" Background="Transparent"/>

                    </Grid>

                    <ControlTemplate.Triggers>

                        <Trigger Property="IsChecked" Value="true">
                            <Setter TargetName="BarSelection" Property="Background" Value="#FF808D8F"/>
                            <Setter TargetName="MainBG" Property="Background" Value="#FF707A7C"/>
                        </Trigger>

                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Es geht um die Image: Name="imgMenu". Der ContentPresenter soll einen Text anzeigen.
Das funktioniert auch recht gut. Nun würde ich gerne auch die "imgMenu" über den Aufrüf
im MainWindow setzen. Ca. so:

XML-Code:
                <RadioButton Content="Start"
                     Style="{StaticResource RadioButtonMenu}"
                     Source="/App;component/Resources/Icons/start.png"
/>

Vielen Dank für etwaige Hilfe.
21.04.2019 02:09 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: 275
Entwicklungsumgebung: VS2012
Herkunft: Köln


KroaX ist offline

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

Ich glaube wenn du hier ein Attached Property verwendest ist das für dein Szenario der einfachste Weg ohne das Radiobutton Control selbst abzuleiten

 https://dailydotnettips.com/how-to-creat...perties-in-wpf/
21.04.2019 08:47 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Snoppie
myCSharp.de-Mitglied

Dabei seit: 21.04.2019
Beiträge: 2

Themenstarter Thema begonnen von Snoppie

Snoppie ist offline

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

Vielen Dank. Das Schlagwort "Attached Property" hats gemacht. Hab immer unter falschen Schlagwörtern gesucht.
21.04.2019 12:08 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 4 Monate.
Der letzte Beitrag ist älter als 4 Monate.
Antwort erstellen


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 23.08.2019 09:34