ฉันสามารถระบุสไตล์ที่ใช้กับองค์ประกอบทั้งหมดได้หรือไม่ ฉันเหนื่อย
<Style TargetType="Control">
<Setter Property="Margin" Value="0,5" />
</Style>
แต่มันไม่ทำอะไรเลย
ฉันสามารถระบุสไตล์ที่ใช้กับองค์ประกอบทั้งหมดได้หรือไม่ ฉันเหนื่อย
<Style TargetType="Control">
<Setter Property="Margin" Value="0,5" />
</Style>
แต่มันไม่ทำอะไรเลย
คำตอบ:
Style
คุณสร้างขึ้นเป็นเพียงการกำหนดเป้าหมายและไม่ได้องค์ประกอบที่เป็นผลมาจากControl
Control
เมื่อคุณไม่ได้ตั้งค่าx:Key
มันจะถูกตั้งค่าโดยปริยายTargetType
ดังนั้นในกรณีของคุณx:Key="{x:Type Control}"
ดังนั้นในกรณีของคุณ
ไม่มีวิธีใดโดยตรงในการระบุStyle
เป้าหมายที่กำหนดเป้าหมายองค์ประกอบทั้งหมดที่มาจากTargetType
ไฟล์Style
. คุณมีทางเลือกอื่น ๆ
หากคุณมีสิ่งต่อไปนี้ Style
<Style x:Key="ControlBaseStyle" TargetType="{x:Type Control}">
<Setter Property="Margin" Value="50" />
</Style>
คุณสามารถกำหนดเป้าหมายทั้งหมดได้Buttons
เช่น
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource ControlBaseStyle}"/>
หรือใช้สไตล์โดยตรงกับองค์ประกอบใด ๆ เช่น Button
<Button Style="{StaticResource ControlBaseStyle}" ...>
ดังที่ Fredrik Hedblad ตอบคุณสามารถส่งผลต่อองค์ประกอบทั้งหมดที่สืบทอดมาจากการควบคุม
แต่คุณไม่สามารถใช้สไตล์สำหรับบล็อกข้อความและปุ่มที่มีลักษณะเดียวกันได้เช่น
การทำเช่นนั้น:
<Style x:Key="DefaultStyle" TargetType="{x:Type FrameworkElement}">
<Setter Property="Control.Margin" Value="50"/>
</Style>
<Style TargetType="TextBlock" BasedOn="{StaticResource DefaultStyle}"/>
<Style TargetType="Button" BasedOn="{StaticResource DefaultStyle}"/>
FrameworkElement
ไม่ถูกนำไปใช้กับการควบคุมทั้งหมดของฉัน - สิ่งนี้ตอบคำถามนั้นได้!