gpt4 book ai didi

wpf - 在 VisualBrush 内部时忽略 Canvas 背景

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

鉴于此 XAML:

<Style TargetType="PasswordBox">
<Setter Property="Background">
<Setter.Value>
<VisualBrush TileMode="Tile"
Viewport="0,0,10,10" ViewportUnits="Absolute">
<VisualBrush.Visual>
<Canvas Background="{x:Static SystemColors.WindowBrush}">
<Path Data="M0,0 L10,10 M0,10 L10,0">
<Path.Stroke>
<SolidColorBrush Color="{x:Static SystemColors.HighlightColor}"/>
</Path.Stroke>
</Path>
</Canvas>
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
...

Canvas 背景将被忽略,相反,路径在对密码框后面的表单透明的背景上可见。那么我应该在哪里设置“背景的背景”?

最佳答案

问题是 Canvas 没有大小。

将其更改为这样,您应该会看到它:

<Canvas Background="{x:Static SystemColors.WindowBrush}"
Width="10"
Height="10">

要减少对这些维度的引用数量,您可以将它们声明为资源。由于您正在处理正方形,因此可以将其减少到一个值:

    <Grid.Resources>
<System:Double x:Key="Width">10</System:Double>
<System:Double x:Key="Height">10</System:Double>
<Style TargetType="PasswordBox">
<Setter Property="Background">
<Setter.Value>
<VisualBrush TileMode="Tile"
ViewportUnits="Absolute">
<VisualBrush.Viewport>
<Rect Width="{StaticResource Width}"
Height="{StaticResource Height}" />
</VisualBrush.Viewport>
<VisualBrush.Visual>
<Canvas Background="{x:Static SystemColors.WindowBrush}"
Width="{StaticResource Width}"
Height="{StaticResource Height}" >

当然,如果您要绑定(bind)到 View 模型,您也可以通过绑定(bind)来驱动维度。

关于wpf - 在 VisualBrush 内部时忽略 Canvas 背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12645257/

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