小编lab*_*key的帖子

如何扩展而不是覆盖WPF样式

我想在我的应用程序中使用自定义主题,据我所知,我可以通过使用资源字典并在App.xaml中引用它来实现此目的.样式将覆盖默认值,如下所示:

<Style TargetType="{x:Type Label">
    <Setter Property="Foreground" Value="Green" />
</Style>
Run Code Online (Sandbox Code Playgroud)

现在我猜我的默认标签样式是用相同的值覆盖但我的所有标签字体都是绿色.当我想再次在某个地方设置一个标签时,问题就出现了.当我想像我这样更改网格中的其他属性时

<Grid.Resources>
    <Style TargetType="{x:Type Label">
        <Setter Property="FontSize" Value="28" />
    </Style>
</Grid.Resources>
Run Code Online (Sandbox Code Playgroud)

我的网格中的所有标签都会丢失其前景色并再次出现默认值(我是否在上一步中覆盖了默认值?).经过一些尝试,我发现要正确地做到这一点,我必须添加另一个属性来Style声明BasedOn={StaticResource {x:Type Label}}",它的工作原理.这对我来说有点奇怪,因为现在我将不得不在整个应用程序中重复相同的BasedOn代码,这不是样式的工作原理 - 这应该自动完成!例如,在HTML + CSS样式中继承和合并,在WPF中它们被替换...

请注意,当我不使用任何样式控件时,仍然可以从somehwere(System Themes?)中获取它们的外观.我怎么能告诉他们在其他地方寻找默认值,所以如果没有任何额外的样式代码,他们会认为默认情况下它们应该是绿色的?

有什么方法可以自动设置BasedOn属性吗?或者也许有更好的做到这一点?

wpf themes styles skin basedon

26
推荐指数
2
解决办法
2万
查看次数

Yii2中所有项目的默认main.php配置文件

我正在开发基于Yii2框架的多个网站,我想知道是否有任何好方法或者是否创建共享基本配置main.php文件甚至是好主意.

这背后的原因是我的所有项目都基于相同的系统,有很多相似之处,我只想保持干燥.配置也大致相同 - 唯一的区别实际上是数据库名称和其他一些值.甚至urlManager规则也没有那么不同.

问题是,例如,当我想FileTarget为所有网站添加额外的记录器目标时,我必须分别为每个项目执行此操作,我永远无法确定所有项目配置是否都是最新的并且所有设置都正确.

所以我想知道是否有任何Yii方式创建在多个项目中共享的默认配置文件,或者它只是一个坏主意.例如,我可以创建bootstrap组件来设置默认值,或者将默认配置添加为文件中合并配置列表中的第一项frontend\web\index.php.我在作曲家中添加了私有包,因此添加将在所有项目中共享的文件不是问题.

yii2 yii2-advanced-app

6
推荐指数
2
解决办法
1257
查看次数

标签 统计

basedon ×1

skin ×1

styles ×1

themes ×1

wpf ×1

yii2 ×1

yii2-advanced-app ×1