运维开发网

c# – 按钮样式的内容仅出现在一个Button实例中

运维开发网 https://www.qedev.com 2020-05-28 17:22 出处:网络 作者:运维开发网整理
我有一个Viewbox: <Viewbox x:Key="SampleViewbox" > <Grid> <Ellipse Stroke="#e2e2e0" StrokeThickness="6" Fill="#d5273e" Width="128" Height="128"/> </Grid> </Viewbox> 然后我将其包含在样式中: <Style x:Key="Sampl
我有一个Viewbox:

<Viewbox x:Key="SampleViewbox" >
  <Grid>
    <Ellipse Stroke="#e2e2e0" StrokeThickness="6" Fill="#d5273e" Width="128" Height="128"/>
  </Grid>
</Viewbox>

然后我将其包含在样式中:

<Style x:Key="SampleStyle" TargetType="{x:Type Button}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type Button}">
                <Border Background="Transparent" >
                    <ContentPresenter Content="{StaticResource SampleViewbox}"/>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

现在我使用SampleStyle创建了许多按钮

<Grid>   
    <StackPanel>
       <Button Style="{StaticResource SampleStyle}" Height="50" Width="50"></Button>
       <Button Style="{StaticResource SampleStyle}" Height="80" Width="80"></Button>
       <Button Style="{StaticResource SampleStyle}" Height="20" Width="20"></Button>  
    </StackPanel>
</Grid>

但是,只有一个按钮具有椭圆(视图框)

如何让所有按钮都显示/显示椭圆?

Viewbox是FrameworkElement,不能属于多个父项.每次按钮请求资源{StaticResource SampleViewbox}时,它们都会获得相同的实例.

要更改该行为,请添加x:Shared =“False”属性

<Viewbox x:Key="SampleViewbox" x:Shared="False">
0

精彩评论

暂无评论...
验证码 换一张
取 消