Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

[Gelöst] WPF - ToggleButton mit Text und grünem Kreis davor stellt weder Text noch grünen Kreis dar
Noumenon
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

[Gelöst] WPF - ToggleButton mit Text und grünem Kreis davor stellt weder Text noch grünen Kreis dar

beantworten | zitieren | melden

Experimentiere zu Verständniszwecken nur ein bisschen herum und bin (wie übrigens generell, permanent und ständig bei C#/WPF -.-) mal wieder erstaunt (oder auch nicht), wie alles so herrlich ganz und gar und überhaupt nicht funzen tut... -.-

Eigentlich hab' ich hier nur einen reichlich simplen ToggleButton mit ein bisschen custom style... "blub" sollte eigentlich auf dem Button stehen... und noch ein grüner Kreis davor (siehe Markup). Ist nur leider nicht der Fall, zu meiner allergrößten Verwunderung!

Ich verstehe einfach partout nicht, warum es nicht funktioniert, so wie angedacht. Any ideas?!

XAML-Markup:

<Window x:Class="DependencyProperties.MainWindow"
        xmlns:my="clr-namespace:DependencyProperties"
        ...>
    <Window.Resources>
        ...
        <Style x:Key="ToggleButtonStyle1" TargetType="{x:Type ToggleButton}">
        ...
            <Setter Property="Content">
                <Setter.Value>
                    <StackPanel Orientation="Horizontal">
                        <Ellipse Width="11" Height="11"
                                             Stroke="Black"
                                             StrokeThickness="1"
                                             Fill="{TemplateBinding my:ThemeProperties.TickBrush}"
                             />
                        <Label Content="{TemplateBinding my:DPTest.TextString}"/>
                    </StackPanel>
                </Setter.Value>
            </Setter>
            ...
        </Style>
    </Window.Resources>
    <Grid>
        <ToggleButton Name="testBtn" Style="{DynamicResource ToggleButtonStyle1}"
                      my:DPTest.TextString="blub"
                      my:ThemeProperties.TickBrush="Green">
        </ToggleButton>
    </Grid>

Definition der DPs in cs-File:


    public static class ThemeProperties
    {
        public static Brush GetTickBrush(DependencyObject obj)
        {
            return (Brush)obj.GetValue(TickBrushProperty);
        }

        public static void SetTickBrush(DependencyObject obj, Brush value)
        {
            obj.SetValue(TickBrushProperty, value);
        }

        public static readonly DependencyProperty TickBrushProperty =
            DependencyProperty.RegisterAttached(
                "TickBrush",
                typeof(Brush),
                typeof(ThemeProperties),
                new FrameworkPropertyMetadata(Brushes.Black));
    }

    public class DPTest
    {
        public static string GetTextString(DependencyObject obj)
        {
            return (string)obj.GetValue(TextStringProperty);
        }

        public static void SetTextString(DependencyObject obj, string value)
        {
            obj.SetValue(TextStringProperty, value);
        }

        public static readonly DependencyProperty TextStringProperty =
            DependencyProperty.RegisterAttached(
            "TextString",
            typeof(string),
            typeof(DPTest),
            new PropertyMetadata("test"));
    }

Cheers!
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Noumenon am .
private Nachricht | Beiträge des Benutzers
ErfinderDesRades
myCSharp.de - Experte

Avatar #avatar-3151.jpg


Dabei seit:
Beiträge: 5409

beantworten | zitieren | melden

ich denke, die Bindings stimmen nicht.
Erscheinen da keine Binding-Mismatch-Meldungen im Output-Fenster, wenn du das startest?
Der frühe Apfel fängt den Wurm.
private Nachricht | Beiträge des Benutzers
Noumenon
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

beantworten | zitieren | melden

Zitat von ErfinderDesRades
ich denke, die Bindings stimmen nicht.
Erscheinen da keine Binding-Mismatch-Meldungen im Output-Fenster, wenn du das startest?
Leider nicht, nein, sieht nicht so aus.
(Entsprechende Messages sind evtl. ein Feature neuerer VS-Versionen? Hab' hier nur VS2012.)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Noumenon am .
private Nachricht | Beiträge des Benutzers
Stu42
myCSharp.de - Member



Dabei seit:
Beiträge: 506
Herkunft: Aus dem Norden

beantworten | zitieren | melden

Probier mal folgendes:
Nimm kein TemplateBinding, sonder ein Binding mit RelativeSource self.

z.B.: ..="{Binding Path=(local:Attached.Test), RelativeSource={RelativeSource Self}}"
private Nachricht | Beiträge des Benutzers
ErfinderDesRades
myCSharp.de - Experte

Avatar #avatar-3151.jpg


Dabei seit:
Beiträge: 5409

beantworten | zitieren | melden

nö - die meldungen kamen schon in 2010.

Du kannst mal ein Binding bewusst falsch setzen, um zu überprüfen, ob du überhaupt BindingMismatch-Feedback bekommst, (und wo - das Ausgabefenster muss man nämlich auch erstmal suchen)

Schmeiss einfach folgenden Unfug ins Grid:
<TextBlock Text="{Binding UffUff}"/>
Das muss einen Fehler ins Ausgabefenster loggen.
Ansonsten musste das Ausgabefenster suchen oder sonstwie zusehen, dass dir dieses Feedback zuteil wird.

@Stu42: Stimmt auch - TemplateBinding ist an dieser Stelle falsch - ist ja kein ControlTemplate.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von ErfinderDesRades am .
Der frühe Apfel fängt den Wurm.
private Nachricht | Beiträge des Benutzers
Noumenon
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

beantworten | zitieren | melden

Zitat von Stu42
Probier mal folgendes:
Nimm kein TemplateBinding, sonder ein Binding mit RelativeSource self.

z.B.: ..="{Binding Path=(local:Attached.Test), RelativeSource={RelativeSource Self}}"
Works!

Jetzt hapert's nur noch beim Verständnis... Aber ist ja sowieso alles noch völlig Neuland für mich.

        <Style x:Key="ToggleButtonStyle1" TargetType="{x:Type ToggleButton}">
            ...
            <Setter Property="Content">
                <Setter.Value>
                    <StackPanel Orientation="Horizontal">
                        <!--<Ellipse Width="11" Height="11"
                                             Stroke="Black"
                                             StrokeThickness="1"
                                             Fill="{TemplateBinding my:ThemeProperties.TickBrush}"
                             />-->
                        <!--<Label Content="{TemplateBinding my:DPTest.TextString}"/>-->
                        <Ellipse Width="11" Height="11"
                                             Stroke="Black"
                                             StrokeThickness="1"
                                             Fill="{Binding Path=(my:ThemeProperties.TickBrush), RelativeSource={RelativeSource Self}}"
                             />
                        <Label Content="{Binding Path=(my:DPTest.TextString), RelativeSource={RelativeSource Self}}"/>
                    </StackPanel>
                </Setter.Value>
            </Setter>
        </Style>
Zitat von ErfinderDesRades
Du kannst mal ein Binding bewusst falsch setzen, um zu überprüfen, ob du überhaupt BindingMismatch-Feedback bekommst, (und wo - das Ausgabefenster muss man nämlich auch erstmal suchen)

Schmeiss einfach folgenden Unfug ins Grid:
<TextBlock Text="{Binding UffUff}"/>
Das muss einen Fehler ins Ausgabefenster loggen.
Ansonsten musste das Ausgabefenster suchen oder sonstwie zusehen, dass dir dieses Feedback zuteil wird.
Nix...

Nutze das Output-Fenster meist irgendwie zwecks Debugging (via Debug.WriteLine()) und lass' mir da grad zur Sicherheit auch noch einmal "Hello World!" ausspucken. Mehr als das - auch mit deinem vorgeschlagenen "Stolperstein" - kommt aber nicht:
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities\11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities.Sync\11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\11.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'p:\Projekte\C-Sharp\_tutorials\DependencyProperties\DependencyProperties\bin\Debug\DependencyProperties.vshost.exe', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework.Aero\v4.0_4.0.0.0__31bf3856ad364e35\PresentationFramework.Aero.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.CSharp\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.CSharp.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.DataSetExtensions\v4.0_4.0.0.0__b77a5c561934e089\System.Data.DataSetExtensions.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xaml\v4.0_4.0.0.0__b77a5c561934e089\System.Xaml.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\WindowsBase\v4.0_4.0.0.0__31bf3856ad364e35\WindowsBase.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\PresentationCore\v4.0_4.0.0.0__31bf3856ad364e35\PresentationCore.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework\v4.0_4.0.0.0__31bf3856ad364e35\PresentationFramework.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
The thread 'vshost.NotifyLoad' (0x18d0) has exited with code 0 (0x0).
The thread 'vshost.LoadReference' (0x1450) has exited with code 0 (0x0).
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'p:\Projekte\C-Sharp\_tutorials\DependencyProperties\DependencyProperties\bin\Debug\DependencyProperties.exe', Symbols loaded.
Step into: Stepping over non-user code 'DependencyProperties.App.App'
Step into: Stepping over non-user code 'DependencyProperties.App.InitializeComponent'
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework.resources\v4.0_4.0.0.0_de_31bf3856ad364e35\PresentationFramework.resources.dll'
Hello World!
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework-SystemXml\v4.0_4.0.0.0__b77a5c561934e089\PresentationFramework-SystemXml.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\UIAutomationTypes\v4.0_4.0.0.0__31bf3856ad364e35\UIAutomationTypes.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework-SystemXmlLinq\v4.0_4.0.0.0__b77a5c561934e089\PresentationFramework-SystemXmlLinq.dll', Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'DependencyProperties.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\PresentationCore.resources\v4.0_4.0.0.0_de_31bf3856ad364e35\PresentationCore.resources.dll'

Werd's aber auch noch einmal bei mir zu Hause checken, da hab ich VS2015 (Community-Edition).
private Nachricht | Beiträge des Benutzers
ErfinderDesRades
myCSharp.de - Experte

Avatar #avatar-3151.jpg


Dabei seit:
Beiträge: 5409

beantworten | zitieren | melden

ja, ich weiß auch nicht, was die sich bei MS denken.
Ich tät empfehlen, dass du mal in den Optionen einstellst, dass dein Outputfenster wirklich nur Debug-Meldungen outputtet, und nicht das ganze Gefasel da, was du da hast - da findet ja niemand nichts.

Jdfs. da scheint was faul zu sein.

Übrigens VS2012 hat oft die Eigenart, dass Fehler nicht wirklich mit einem Codestop behandelt werden.

Weißt du was ich meine?
Man kann das iwie umstellen, aber hab vergessn wie.

Guck, ein Fehler mit Codestop muss in 2012 so aussehen:
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von ErfinderDesRades am .
Attachments
Der frühe Apfel fängt den Wurm.
private Nachricht | Beiträge des Benutzers
Noumenon
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

beantworten | zitieren | melden

Zitat von ErfinderDesRades
Ich tät empfehlen, dass du mal in den Optionen einstellst, dass dein Outputfenster wirklich nur Debug-Meldungen outputtet, und nicht das ganze Gefasel da, was du da hast - da findet ja niemand nichts.
Ok, fummel' mich bei Gelegenheit da mal durch.

Hab' grad auch noch einmal gesehen, dass es doch iwie noch net funzt.

Der Button ist mit "test" beschriftet, so wie bei der Definition der DP als Default-Wert angegeben:


        public static readonly DependencyProperty TextStringProperty =
            DependencyProperty.RegisterAttached(
            "TextString",
            typeof(string),
            typeof(DPTest),
            new PropertyMetadata("test"));
Per Markup müsste die Beschriftung aber zu "blub" geändert werden:

        <ToggleButton Name="testBtn" Style="{DynamicResource ToggleButtonStyle1}"
                      my:DPTest.TextString="blub"
                      my:ThemeProperties.TickBrush="Green">
        </ToggleButton>
private Nachricht | Beiträge des Benutzers
Noumenon
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

beantworten | zitieren | melden

Ok, hab' in den Optionen was gefunden und erhalte nun u.a. folgende Fehlermeldungen (wie zum Teil postuliert):
System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=UffUff; DataItem=null; target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=HorizontalContentAlignment; DataItem=null; target element is 'ContentPresenter' (Name=''); target property is 'HorizontalAlignment' (type 'HorizontalAlignment')
System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=VerticalContentAlignment; DataItem=null; target element is 'ContentPresenter' (Name=''); target property is 'VerticalAlignment' (type 'VerticalAlignment')
System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=HorizontalContentAlignment; DataItem=null; target element is 'ContentPresenter' (Name=''); target property is 'HorizontalAlignment' (type 'HorizontalAlignment')
System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=VerticalContentAlignment; DataItem=null; target element is 'ContentPresenter' (Name=''); target property is 'VerticalAlignment' (type 'VerticalAlignment')
System.Windows.Data Information: 41 : BindingExpression path error: 'UffUff' property not found for 'object' because data item is null.  This could happen because the data provider has not produced any data yet. BindingExpression:Path=UffUff; DataItem=null; target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
System.Windows.Data Information: 20 : BindingExpression cannot retrieve value due to missing information. BindingExpression:Path=UffUff; DataItem=null; target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
System.Windows.Data Information: 21 : BindingExpression cannot retrieve value from null data item. This could happen when binding is detached or when binding to a Nullable type that has no value. BindingExpression:Path=UffUff; DataItem=null; target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=UffUff; DataItem=null; target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Noumenon am .
private Nachricht | Beiträge des Benutzers
ErfinderDesRades
myCSharp.de - Experte

Avatar #avatar-3151.jpg


Dabei seit:
Beiträge: 5409

beantworten | zitieren | melden

Jepp - so müssen Binding-Fehler gemeldet werden - unleserlich, kaum zu verstehen - aber was anderes steht nicht zur Verfügung.
Immerhin siehst du, dass bei deim Werk noch einiges im Argen liegt.


zum anderen Problem:

Ja, das versteh ich auch nicht, was du da machst.
Zumindest den Text kannst du doch ganz normal setzen, denke ich.

Das mit dem grün - soll das eine AttachedProperty werden?
Hab ich grad nicht parat, aber das muss man entsprechend registrieren, und dann auch korrekt abrufen.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von ErfinderDesRades am .
Der frühe Apfel fängt den Wurm.
private Nachricht | Beiträge des Benutzers
Noumenon
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

beantworten | zitieren | melden

Zitat von ErfinderDesRades
Zumindest den Text kannst du doch ganz normal setzen, denke ich.
In diesem konkreten Fall - ja. In diesem Fall allerdings...

            <Setter Property="Content">
                <Setter.Value>
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="4"/>
                            <RowDefinition Height="44"/>
                            <RowDefinition Height="14"/>
                            <RowDefinition Height="14"/>
                            <RowDefinition Height="14"/>
                        </Grid.RowDefinitions>
                        <Image Grid.Row="1" Source="IconStellatedOctahedron.png" Width="40" Height="40" HorizontalAlignment="Center"/>
                        <Line Grid.Row="2" Stroke="#ff133c5f" X1="0" Y1="0"  X2="50" Y2="0" StrokeThickness="1"
                              HorizontalAlignment="Center" Margin="0,5" SnapsToDevicePixels="True" RenderOptions.EdgeMode="Aliased"/>
                        <Label Grid.Row="3" Content="Stern-" FontSize="10" HorizontalAlignment="Center" Margin="0,-14"/>
                        <Label Grid.Row="4" Content="tetraeder" FontSize="10" HorizontalAlignment="Center" Margin="0,-14"/>
                    </Grid>
                </Setter.Value>
            </Setter>
...gestaltet sich das schwieriger, wenn man nicht unbedingt für 9 Buttons 9x so ziemlich gleichen Code kopieren möchte (wie's aktuell auch noch der Fall ist...).
Zitat von ErfinderDesRades
Das mit dem grün - soll das eine AttachedProperty werden?
Ja, aber auch das erst einmal nur so zu Übungszwecken. Für ein größeres Projekt meinerseits bräuchte ich eine AP für die ImageSource (s.o.). Dachte nur, vllt. fange ich erst einmal mit etwas einfacherem an...
Zitat von ErfinderDesRades
Hab ich grad nicht parat, aber das muss man entsprechend registrieren, und dann auch korrekt abrufen.
In einem anderen Zusammenhang funzt es ja (dort innerhalb eines ControlTemplates von CheckBox/RadioButton).
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Noumenon am .
Attachments
private Nachricht | Beiträge des Benutzers
Noumenon
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

beantworten | zitieren | melden

Zitat von Noumenon
Hab' grad auch noch einmal gesehen, dass es doch iwie noch net funzt.

Der Button ist mit "test" beschriftet, so wie bei der Definition der DP als Default-Wert angegeben:


        public static readonly DependencyProperty TextStringProperty =
            DependencyProperty.RegisterAttached(
            "TextString",
            typeof(string),
            typeof(DPTest),
            new PropertyMetadata("test"));
Per Markup müsste die Beschriftung aber zu "blub" geändert werden:

        <ToggleButton Name="testBtn" Style="{DynamicResource ToggleButtonStyle1}"
                      my:DPTest.TextString="blub"
                      my:ThemeProperties.TickBrush="Green">
        </ToggleButton>
Nach wie vor an einer Lösung interessiert...

Gruß & schönes WE
Nou
private Nachricht | Beiträge des Benutzers
Noumenon
myCSharp.de - Member



Dabei seit:
Beiträge: 8

Themenstarter:

beantworten | zitieren | melden

lol... I got it!!!
 <Label Content="{Binding Path=(my:DPTest.TextString), RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Button}}}"/>
private Nachricht | Beiträge des Benutzers