【问题标题】:XAML can't remove border from rectangleXAML 无法从矩形中删除边框
【发布时间】:2014-04-22 22:26:33
【问题描述】:

我正在尝试在 xaml/C# 中构建一个聊天气泡类型的对话窗口。

但是,我无法从矩形as seen in this screenshot 中删除灰色边框。它应该只是矩形和三角形之间的白色。

这是其中一个气泡的编码图:

<Grid Margin="30, 10, 5, 0"
                  local:GridUtils.RowDefinitions=",,">
            <Rectangle Fill="White"
                       Grid.RowSpan="2"/>
            <TextBox Text="{Binding Path=Text}"
                         Style="{StaticResource TextBlockStyle}"/>
            <TextBlock Text="{Binding Path=Timestamp, Converter={StaticResource StringFormatConverter}, ConverterParameter='ddd, HH:mm'}"
                         Style="{StaticResource TimestampStyle}"
                         Grid.Row="1"/>
            <Path Data="m 0,0 l 16,0 l 0,16 l -16,-16"
                    Fill="White"
                    Margin="0,0,5,0"
                    HorizontalAlignment="Right"
                    Grid.Row="2"/>
</Grid>

我尝试了以下方法:

  • 使用 stroke/strokethickness 和白色作为颜色
  • 删除网格线
  • 更改 z 顺序

Google 似乎只提供有关创建边框的提示,而不是删除它。我的代码中没有任何内容应该这样做,会不会是 Windows 主题?

作为参考,here's a screenshot of the same code 但带有&lt;Rectangle Fill="Red"&gt;

【问题讨论】:

  • 从 TextBlock 中移除样式。我在没有样式的情况下测试了您的 XAML,但它没有显示您拥有的那一行。

标签: c# wpf xaml


【解决方案1】:

我刚刚复制到这里。您的三角形略微太低,无法正确连接矩形,因此您看到的灰线是 WPF 在白色三角形和黑色背景之间的抗锯齿。您可以通过以负边距稍微向上推动三角形来修复:

<Path Data="m 0,0 l 16,0 l 0,16 l -16,-16"
                    Fill="White"
                    Margin="0,-1,5,0"           
                    HorizontalAlignment="Right"
                    Grid.Row="2"/>

如果您不介意混叠,或者通过RenderOptions.EdgeMode="Aliased" 关闭Path 的抗混叠。

【讨论】:

  • 很确定,请查看我刚刚添加的底部的参考。 Stroke="{x:Null}" 没用 :(
猜你喜欢
  • 2015-12-16
  • 2012-04-10
  • 2018-05-24
  • 1970-01-01
  • 2017-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多