আমি কি এমন স্টাইল নির্দিষ্ট করতে পারি যা সমস্ত উপাদানগুলিতে প্রযোজ্য? আমি চেষ্টা করেছিলাম
<Style TargetType="Control">
<Setter Property="Margin" Value="0,5" />
</Style>
তবে এটি কিছুই করেনি
উত্তর:
Styleআপনার তৈরি করা শুধুমাত্র লক্ষ্য করে করা হয় Controlএবং অনেক উপাদান আছে যা থেকে আহরণ করা Control। আপনি যখন সেট না করেন x:Keyএটি প্রচ্ছন্নভাবে সেট করা থাকে TargetType, তাই আপনার ক্ষেত্রে casex: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}" ...>
ফ্রেডরিক হেডব্ল্যাড উত্তর হিসাবে আপনি নিয়ন্ত্রণ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত সমস্ত উপাদানকে প্রভাবিত করতে পারেন।
তবে আপনি একই স্টাইলের সাহায্যে পাঠ্য ব্লক এবং বোতামের জন্য স্টাইল প্রয়োগ করতে পারবেন না।
এটা করতে:
<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সমস্ত নিয়ন্ত্রণে প্রয়োগ করা হচ্ছে না - এটি এই প্রশ্নের উত্তর দেয়!