0

私はリストビューを持っています

 <ListView x:Name="listView">
        <ListView.View>
            <GridView>
                <GridViewColumn Width="800" >
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Display}"  Foreground="Black" >
                                </TextBlock>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
                <GridViewColumn Width="800" >
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Display}"  />
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>

最初の TextBlock - Foreground="Black" 2 番目の TextBlock - 前景が指定されていません。

ListView で選択された項目では、最初の TextBlock foreground="Black"(すべての OS で正しく表示されません)、2 番目の TextBlock - フォアグラウンドのデフォルト (すべての OS で正しく表示されます)。

必要なもの:

ListView で選択した項目では、最初の TextBlock フォアグラウンドもデフォルトにする必要があり、すべての OS で正しく表示されますが、TextBlock フォアグラウンドを直接 (トリガーまたはスタイルで) 変更することはできません。

アイデアはありますか?最初の TextBlock のフォアグラウンドをリセットできるかもしれません (デフォルトのフォアグラウンドは設定されていません!正確にリセットされます)。または、スタイルをデフォルトにリセットしますか??

4

1 に答える 1

1

あなたの質問が正しいかどうかはわかりませんが、私の推測では、明示的に設定されているためForeground、最初のものを変更することはできません。TextBlockコントロール自体からフォアグラウンド定義を削除し、スタイルに設定するだけで、他のスタイルやトリガーによってオーバーライドできるようになります。

より詳細な回答があるため(このようなもの)、質問は多少重複しています。まあ、それは私がそれを正しく理解した場合です=)

于 2013-02-26T11:27:43.253 に答える