我想为我的按钮创建一个模板,我可以从代码中更改值。
这是我的模板:
<Button Name="button">
<Button.Template>
<ControlTemplate>
<Border Name="bordure_bouton" >
<Grid Name="GridPrincipale">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
<Image Name="icone" Margin="5" Source="icon.png" RenderOptions.BitmapScalingMode="Fant" Stretch="None" Grid.Column="1"/>
<TextBlock Height="40" Name="label_text" FontSize="12" Text="texte" TextAlignment="Left" VerticalAlignment="Center" Grid.Column="0" Padding="12" Tag="2"/>
</Grid>
</Border>
</ControlTemplate>
</Button.Template>
</Button>
我希望能够通过我的代码更改文本和图像:
this.icon.Source = "icon2.png";
this.label_text.Text = "text";
我该怎么做?
答案 0 :(得分:2)
将您的ControlTemplate
更新为:
<Button Name="MyButton">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border Name="bordure_bouton" >
<Grid Name="GridPrincipale">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="30"/>
</Grid.ColumnDefinitions>
<Image Name="icone" Margin="5" Source= "{TemplateBinding Tag}" RenderOptions.BitmapScalingMode="Fant" Stretch="None" Grid.Column="0"/>
<TextBlock Height="40" Name="label_text" FontSize="12" Text="{TemplateBinding Content}" TextAlignment="Left" VerticalAlignment="Center" Grid.Column="1" Padding="12" Tag="2"/>
</Grid>
</Border>
</ControlTemplate>
</Button.Template>
</Button>
然后,您可以将Button.Content
和Button.Tag
设置为包含您选择的图片和文字
MyButton.Tag = new BitmapImage(new Uri(@"Icons/icon2.png", UriKind.Relative));
MyButton.Content = "text";