WPF中的关于控件button的小问题

发布于 2022-09-01 21:44:56 字数 74 浏览 35 评论 0

"<Button Content="按钮"/>"和"<Button>按钮</Button>"的区别

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

傾城如夢未必闌珊 2022-09-08 21:44:56

没有太大区别,写到属性可以绑定,写到标签内方便对Button布局进一步控制。

栖竹 2022-09-08 21:44:56

对于 WPF,可以为类型指定 ContentPropertyAttribute 特性,语法是这样的:

[ContentProperty(Name = "Content")]
public class Button
{
    public object Content { get; set; }
}

这段代码表示,在 Xaml 中使用这个类型的时候,以 Content 属性为 Xaml 内容属性,就会造成你描述的效果。
而内容属性的含义就是在 Xaml 中,哪个属性可以直接表示该元素的内容。

<Button Content="Click Me!"/>

<Button>
    <Button.Content>
        Click Me!
    </Button.Content>
</Button>

<Button>
    Click Me!
</Button>

这三种表达方式都是等价的。

参考:
https://msdn.microsoft.com/zh-cn/library/system.windows.markup.contentpropertyattribute(v=VS.110).aspx

镜花水月 2022-09-08 21:44:56

没什么区别。除了前一个当作属性可以读取吧

过去的过去 2022-09-08 21:44:56

没有区别,其实只是两种不同的写法而已,都可以。

念三年u 2022-09-08 21:44:56
<Button>content</Button>

这种方法具有良好的可扩展性,原因是其中的内容作为一个元素而不是属性出现,可以有:

<Button>
    <StackPanel>
        <Image/>
        <Label>...</Label>
        ...其他控件
    </StackPanel>
</Button>

这种内容控件经典的用法。

冰雪梦之恋 2022-09-08 21:44:56

这是 XAML 的不同语法。
https://docs.microsoft.com/zh...

特性语法 (属性)

<Button Background="Blue" Foreground="Red" Content="This is a button"/>

属性元素语法

<Button>
  <Button.Background>
    <SolidColorBrush Color="Blue"/>
  </Button.Background>
  <Button.Foreground>
    <SolidColorBrush Color="Red"/>
  </Button.Foreground>
  <Button.Content>
    This is a button
  </Button.Content>
</Button>

集合语法

<LinearGradientBrush>  
  <LinearGradientBrush.GradientStops>  
    <!-- no explicit new GradientStopCollection, parser knows how to find or create -->  
    <GradientStop Offset="0.0" Color="Red" />  
    <GradientStop Offset="1.0" Color="Blue" />  
  </LinearGradientBrush.GradientStops>  
</LinearGradientBrush>

XAML 内容属性

<Border>  
  <TextBox Width="300"/>  
</Border>  

等效于:

<Border>  
  <Border.Child>  
    <TextBox Width="300"/>  
  </Border.Child>  
</Border>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文