gpt4 book ai didi

wpf - 不应用 ContentPresenter 中的样式

转载 作者:行者123 更新时间:2023-12-01 02:13:09 25 4
gpt4 key购买 nike

我有以下 xaml:

<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="True">
<DataGrid.CellStyle>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridCell">
<Grid>
<ContentPresenter Height="50">
<ContentPresenter.Resources>
<Style TargetType="TextBlock">
<Setter Property="Padding" Value="4"/>
</Style>
</ContentPresenter.Resources>
</ContentPresenter>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.CellStyle>
</DataGrid>

事实证明,TextBlock 的默认填充为 2,0。
为什么不应用样式?

编辑:我使用了这个解决方案(来自 here),它从自动生成的 TextBlock (Content.Text) 中获取文本并将其显示在另一个 TextBlock 中:
<ControlTemplate TargetType="{x:Type DataGridCell}">
<Grid SnapsToDevicePixels="True">
<TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent},
Path=Content.Text}" Padding="4"/>
</Grid>
</ControlTemplate>

最佳答案

隐式样式应用于 中的元素模板如果元素继承自 Control,而 TextBlock 不是 继承自 Control .

要了解更多信息,请阅读这篇文章:
MSDN Blog

Update Answer

By point that @JustinXL menthioned and after i snoop DataGrid, In this scope template shouldn't lost style and i found a local style did set to TextBlock(Generated by DataGrid) that override implicit style.

关于wpf - 不应用 ContentPresenter 中的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27522887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com