8

Expression Blend でコンボボックスのスタイルを変更しようとしています。

私がしたことは、コンボボックスを作成し、右クリック>テンプレートの編集>コピーの編集に行きました

また、コンボボックスの背景とコンボボックスの境界線の間に白い境界線があることを除いて、コンボボックスの色を変更できます。ここに画面があるので、次のことがわかります。

ここに画像の説明を入力

ご覧のとおり、青と赤の間にしばらく境界があります。私が知る限り、コンボボックスの色を変更するコードは次のとおりです。

<ToggleButton Grid.ColumnSpan="2" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, 
RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource 
ComboBoxReadonlyToggleButton}" BorderBrush="Red" Background="Blue"/>

しかし、何があっても常に白い境界線があります。どうすればそれを取り除くことができますか?

4

2 に答える 2

1

これは古い質問であり、ブレンドに固有のものであることは知っていますが、この問題をグーグルで検索すると、これが最初に見つかったものの1つです。

これを修正する方法の本当に簡単な例は、最初に述べた答えよりも少し複雑ではありませんが、「スタイル」プロパティを設定することです。(ブレンドを使用していないため、これがブレンドに当てはまるかどうかはわかりませんが、ビジュアルスタジオの単純なwpfの場合、これは機能します)

たとえば、次のコードは、質問で言及されているものと同じようなウィンドウを作成しますが、(ドロップダウン項目の) 白い線は編集可能です。

<ComboBox Background="Blue" BorderBrush="Red">
    <ComboBox.ItemContainerStyle>
        <!-- Without this style section, there are white lines around the borders.  Even if you set these properties in the comboBoxItem areas -->
        <Style TargetType="ComboBoxItem">
            <Setter Property="Background" Value="Green"/>
            <Setter Property="BorderBrush" Value="Purple"></Setter>
        </Style>
     </ComboBox.ItemContainerStyle>
     <ComboBoxItem MouseMove="schedule" Name="cbi1">schedule</ComboBoxItem>
</ComboBox>
于 2015-02-13T16:40:07.880 に答える
0

問題は、コピーを編集するときに、Microsoft の組み込みのクロム コンポーネントを使用してコピーを編集していることです。外側の境界線を変更するには、これらのビットを通常の WPF コントロールに置き換えて、値を変更できるようにする必要があります。コンボ ボックスの場合は、次のコードを使用します: http://msdn.microsoft.com/en-us/library/ms752094

e: 編集したい部分です

 <Border x:Name="Border"
        Grid.ColumnSpan="2"
        CornerRadius="2"
        BorderThickness="1">
  <Border.BorderBrush>
    <LinearGradientBrush EndPoint="0,1"
                         StartPoint="0,0">
      <GradientStop Color="{DynamicResource BorderLightColor}"
                    Offset="0" />
      <GradientStop Color="{DynamicResource BorderDarkColor}"
                    Offset="1" />
    </LinearGradientBrush>
  </Border.BorderBrush>
于 2012-07-17T18:50:11.723 に答える