Imagebrush正在拉伸图像的一个实例而不是另一个实例

时间:2015-04-10 18:26:14

标签: wpf imagebrush

我遇到的一个陌生事件,我有一组使用某个图像作为背景的重复按钮。尽管按钮相同,但其中一个按钮的显示方式不同。下面的完全可重复的样本,以及各种不同结果的变化。

链接到图标:

https://github.com/driftyco/ionicons/blob/master/png/512/plus.png https://github.com/driftyco/ionicons/blob/master/png/512/minus.png

<Grid Margin="0,0,0,0" >
    <StackPanel Orientation="Horizontal" Height="32">
        <StackPanel.Resources>
            <ImageBrush x:Key="plusImage" ImageSource="/Resources/plus.png" />
            <ImageBrush x:Key="minusImage" ImageSource="/Resources/minus.png" />
        </StackPanel.Resources>
        <RepeatButton Width="20"
              Height="20"
              Background="{Binding Source={StaticResource minusImage}}"/>
        <TextBlock Margin="5,0,5,0"
           VerticalAlignment="Top"
           FontWeight="Bold"
           Text="X" />
        <RepeatButton Width="20"
              Height="20"
              Background="{Binding Source={StaticResource plusImage}}"/>
        <Separator Margin="5,0,5,0" Style="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" />
        <RepeatButton Width="20"
              Height="20"
              Background="{Binding Source={StaticResource minusImage}}"/>
        <TextBlock Margin="5,0,5,0"
           VerticalAlignment="Top"
           FontWeight="Bold"
           Text="Y" />
        <RepeatButton Width="20"
              Height="20"
              Background="{Binding Source={StaticResource plusImage}}"/>
        <Separator Margin="5,0,5,0" Style="{StaticResource {x:Static ToolBar.SeparatorStyleKey}}" />
        <RepeatButton Width="20"
              Height="20"
              Background="{Binding Source={StaticResource minusImage}}"/>
        <TextBlock Margin="5,0,5,0"
           VerticalAlignment="Top"
           FontWeight="Bold"
           Text="Z" />
        <RepeatButton Width="20"
              Height="20"
              Background="{Binding Source={StaticResource plusImage}}"/>
    </StackPanel>
</Grid>

enter image description here

我正在创建一个控件来控制一个点的x,y,z位置。正如您在上图中所看到的,只有一个加号图标似乎被拉伸。

变体:

  • 如果我删除了Z和与之关联的图标,则Y的最后一个加号图标不会被拉伸
  • 从Z中删除字体使得加号图标显示正常(未拉伸)

什么会导致画笔像这样拉伸图像?

1 个答案:

答案 0 :(得分:0)

您可以在RepeatButtons上设置UseLayoutRounding属性:

<RepeatButton Width="20" Height="20" UseLayoutRounding="True"
              Background="{Binding Source={StaticResource plusImage}}"/>