相关疑难解决方法(0)

如何覆盖ControlTemplate中的属性?

我有以下XAML:

<Window x:Class="WpfTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="227" Width="391">
    <Window.Resources>
        <ControlTemplate x:Key="PentagonButton" TargetType="{x:Type Button}">
            <Grid>
                <Path Data="M 0,-1 L -.95,-.3 L -.58,.8 L .58,.8 L .95,-.3 Z" Stroke="Black" Stretch="Uniform" Fill="Red" />
                <Viewbox>
                    <ContentPresenter Margin="20" />
                </Viewbox>
            </Grid>
        </ControlTemplate>
    </Window.Resources>
    <Grid>
        <Button Content="red" Margin="12,19,0,0" Template="{StaticResource PentagonButton}" HorizontalAlignment="Left" Width="166" Height="151" VerticalAlignment="Top" />        
        <Button Content="blue" Margin="178,19,0,0" Template="{StaticResource PentagonButton}" Height="151" VerticalAlignment="Top" HorizontalAlignment="Left" Width="173" />        
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

由于Fill ="Red",显然所有按钮都有红色填充/背景颜色.我想将这个模板用于几个按钮,但每个按钮都有不同的填充颜色,在设计时已知.设置背景颜色无效,因此我必须更改填充颜色,但我无法在实际按钮定义中再次定义Path属性.如何在XAML中访问和覆盖此属性?

c# wpf

5
推荐指数
1
解决办法
5615
查看次数

标签 统计

c# ×1

wpf ×1