前提・実現したいこと
後述のソースコードでフォームを表示しますと、3行のLabelとTextBoxが表示されます。
その内の1行にマウスカーソルを当てた際、
- Labelの背景を赤に
- TextBoxで表示している文字をBoldに
したいと思っています。
そして以下の様に記述しました。
xaml
1<Trigger Property="IsMouseOver" Value="True"> 2 <Setter Property="TextBox.FontWeight" Value="Bold"></Setter> 3 <Setter Property="Label.Background" Value="Red"></Setter> 4</Trigger>
発生している問題・エラーメッセージ
実際に操作しますと、マウスオーバーには反応するのですが、
- Labelの背景は赤にならない
- LabelとTextBoxで表示している文字がBold
となってしまいます。
該当のソースコード
xaml
1 <Window.Resources> 2 <XmlDataProvider x:Key="items"> 3 <x:XData> 4 <items xmlns=""> 5 <item index="111111111">aaaaaaaaaa</item> 6 <item index="222222222">bbbbbbbbbb</item> 7 <item index="333333333">cccccccccc</item> 8 </items> 9 </x:XData> 10 </XmlDataProvider> 11 </Window.Resources> 12 <Grid> 13 <ItemsControl ItemsSource="{Binding Source={StaticResource items}, XPath=/items/item}"> 14 <ItemsControl.ItemsPanel> 15 <ItemsPanelTemplate> 16 <StackPanel Orientation="Vertical"></StackPanel> 17 </ItemsPanelTemplate> 18 </ItemsControl.ItemsPanel> 19 20 <ItemsControl.ItemTemplate> 21 <DataTemplate> 22 <StackPanel Orientation="Horizontal"> 23 <Label Content="{Binding XPath=@index}"></Label> 24 <TextBox Text="{Binding XPath=text()}"></TextBox> 25 </StackPanel> 26 </DataTemplate> 27 </ItemsControl.ItemTemplate> 28 29 <ItemsControl.ItemContainerStyle> 30 <Style TargetType="ContentPresenter"> 31 <Style.Triggers> 32 <Trigger Property="IsMouseOver" Value="True"> 33 <Setter Property="TextBox.FontWeight" Value="Bold"></Setter> 34 <Setter Property="Label.Background" Value="Red"></Setter> 35 </Trigger> 36 </Style.Triggers> 37 </Style> 38 </ItemsControl.ItemContainerStyle> 39 </ItemsControl> 40 </Grid>
試したこと
xaml
1<DataTemplate.Triggers> 2 <Trigger Property="IsMouseOver" Value="True"> 3 <Setter Property="TextBox.FontWeight" Value="Bold"></Setter> 4 <Setter Property="Label.Background" Value="Red"></Setter> 5 </Trigger> 6</DataTemplate.Triggers>
に移動しても同じでした。
SetterのPropertyに対する理解が怪しいのかと思い、
https://docs.microsoft.com/en-us/dotnet/api/system.windows.setter.property?view=netframework-4.8
を参照しましたが、読んだ感じでは意図した様に動きそうと思っています。
The following example shows a style declaration that will affect the Background property of a Control. Note that property name in this example is qualified with the name of the class (Control) because the Style does not specify a TargetType.
Google翻訳
次の例は、コントロールのBackgroundプロパティに影響するスタイル宣言を示しています。 この例のプロパティ名は、スタイルがTargetTypeを指定していないため、クラス(Control)の名前で修飾されていることに注意してください。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
.NET Core 3.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/28 07:55
2019/10/28 08:06
2019/10/28 08:16