<Window x:Class="ResizeMove0923.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
<Window.Resources>
<Style TargetType="Control" >
<Setter Property="Cursor" Value="SizeAll" />
</Style>
</Window.Resources>
<Canvas Background="Beige" Name="canvas" >
<Label Canvas.Left="72" Canvas.Top="23" Height="23" Name="textbox1" Width="75" Content="ttttt" />
<TextBox Height="21" Canvas.Left="147" Canvas.Top="23" Width="75" Name="textbox2" Text="&Well" />
<TextBox Canvas.Left="147" Canvas.Top="60" Height="24" Name="textBox3" Width="128" />
</Canvas>
作为一名新手,我在使用Style设置画布中所有元素的光标类型时遇到问题。如果我将TargetType作为Label或TextBox,它可以工作。但我希望光标可以更改将添加到画布的所有类型的元素。我的Style元素有什么问题?
答案 0 :(得分:2)
直接在Canvas
上设置,并将ForceCursor
设置为true,这样可以防止子元素覆盖:
<Canvas Background="Beige" Name="canvas" Cursor="SizeAll" ForceCursor="True">
...
</Canvas>
如果我将TargetType作为Label或TextBox,它可以工作。
隐式样式仅在TargetType
匹配时起作用 - 来自msdn:
如果您隐式设置样式,则样式仅应用于 与TargetType完全匹配的类型,而不是与派生的元素匹配的类型 来自TargetType值。例如,如果您创建样式 隐式地对应用程序中的所有ToggleButton控件,以及 您的应用程序具有ToggleButton和CheckBox控件(CheckBox 源自ToggleButton),&#34; ToggleButton&#34;隐含的风格是 仅适用于ToggleButton控件。