0

私が遭遇した奇妙な出来事の 1 つは、特定の画像を背景として使用する一連の繰り返しボタンを持っていることです。ボタンは同じですが、表示が異なります。以下の完全に再現可能なサンプルと、それぞれ異なる結果を持つ多数のバリエーション。

アイコンへのリンク:

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>

ここに画像の説明を入力

ポイントの x、y、z 位置を制御するコントロールを作成しています。上の画像でわかるように、プラス アイコンの 1 つだけが引き伸ばされているように見えます。

バリエーション:

  • Z とそれに関連付けられているアイコンを削除すると、Y の最後のプラス アイコンは引き伸ばされません
  • Z から fontweight を削除すると、プラス アイコンが通常のように表示されます (引き伸ばされません)。

イメージブラシがこのように画像を引き伸ばす原因は何ですか?

4

1 に答える 1

0

UseLayoutRoundingRepeatButtonsにプロパティを設定できます。

<RepeatButton Width="20" Height="20" UseLayoutRounding="True"
              Background="{Binding Source={StaticResource plusImage}}"/>
于 2015-04-10T21:10:53.797 に答える