gpt4 book ai didi

wpf - 根据PresentationFramework.Aero重写WPF TextBox中的默认样式。

转载 作者:行者123 更新时间:2023-12-03 08:56:21 25 4
gpt4 key购买 nike

我想使用Aero文本框样式,但仍要覆盖某些属性。我尝试通过以下方法实现此目的:

<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />
</ResourceDictionary.MergedDictionaries>

<Style x:Key="{x:Type TextBox}" TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Margin" Value="2" />
<Setter Property="Padding" Value="2" />
</Style>
</ResourceDictionary>

但是,这会在启动我的应用程序时产生 StackOverflowException
当我删除对PresentationFramework.Aero的引用时,这可以工作,但是我得到了默认的操作系统样式,这使应用程序难看。 ;)

因此,实际上:如果我想在所有文本框中覆盖某些样式,则无法获得Aero外观。如果要使用Aero外观,则不能覆盖任何样式。僵局。

有什么办法解决这个问题?

最佳答案

如果将Style放在较低级别的资源中,而不是放在同一ResourceDictionary中,则似乎可行:

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Grid.Resources>
<Border BorderBrush="Blue" BorderThickness="3">
<Border.Resources>
<Style TargetType="{x:Type TextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Margin" Value="2" />
<Setter Property="Padding" Value="2" />
</Style>
</Border.Resources>
<TextBox />
</Border>
</Grid>

关于wpf - 根据PresentationFramework.Aero重写WPF TextBox中的默认样式。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/643440/

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