Autor Beitrag
mmgg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: Sa 28.06.14 21:22 
ich quäl mich gerad mit dem setzten einer Resource im behindCode.
Ein Beispiel von dieser Seite
blog.texturenland.de...r-codebehind-setzen/
das workd auch aber nur solang ich den resourcencode nicht ändere.

Dies ist ein XAML Code der einen Button rund macht, solang ich dei resource im XAML code aufrufe. Kommt der Aufruf aus dem Behindcode tut sich nichts.

ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
<Window.Resources>
        <ControlTemplate x:Key="ButtonKreis">            
                <Ellipse x:Name="Kreis1" Width="30" Height="30">
                    <Ellipse.Fill>
                        <LinearGradientBrush StartPoint="5,0" EndPoint="0,8">
                            <GradientStop Offset="2" Color="Green"/>
                            <GradientStop Offset="7" Color="Yellow"/>
                        </LinearGradientBrush>
                    </Ellipse.Fill>
                </Ellipse>           
        </ControlTemplate>
    </Window.Resources>

 <Grid>
        <Button Name="btnButton1"></Button
    </Grid>


Im behindCode setzt ich es dann so
Code:

ausblenden C#-Quelltext
1:
2:
3:
4:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
  this.btnButton1.SetResourceReference(BackgroundProperty, "ButtonKreis");
}


Ruf ich die Resource im XAML Code auf, hab ich meinen runden button
ausblenden XML-Daten
1:
<Grid><Button Name="btnButton1" Template="{StaticResource ButtonKreis}">KreisButton</Button></Grid>					

Nur über behind läufts nicht, es gibt aber auch keinen Error, der Button füllt die gesamte Fläche aus, mehr nicht.

Moderiert von user profile iconTh69: Code- durch XML-Tags ersetzt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 28.06.14 23:19 
Hallo und :welcome:

der Blogbeitrag bezieht sich aber auf eine Resource, welche der Eigenschaft Background zugewiesen wird. Du möchtest aber ein Template setzen - dies sollte also entweder mittels
ausblenden C#-Quelltext
1:
this.btnButton1.SetResourceReference(TemplateProperty, "ButtonKreis");					

oder
ausblenden C#-Quelltext
1:
this.btnButton1.Template = (DataTemplate)FindResource("ButtonKreis");					

funktionieren.
mmgg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41



BeitragVerfasst: So 29.06.14 19:03 
man dankt, auch für die Zugabe mit "Finderesource"
Dass da eine andere Property sein muss leuchtet ein, war mir bis jetzt aber nicht aufgefallen.