সমস্ত নিয়ন্ত্রণ (ডাব্লুপিএফ স্টাইলস) কীভাবে লক্ষ্যবস্তু করা যায়


90

আমি কি এমন স্টাইল নির্দিষ্ট করতে পারি যা সমস্ত উপাদানগুলিতে প্রযোজ্য? আমি চেষ্টা করেছিলাম

<Style TargetType="Control">
    <Setter Property="Margin" Value="0,5" />
</Style>

তবে এটি কিছুই করেনি

উত্তর:


120

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}" ...>

আমি ভাবছিলাম যে একটি টার্গেটের ধরণের স্টাইলটি আমার FrameworkElementসমস্ত নিয়ন্ত্রণে প্রয়োগ করা হচ্ছে না - এটি এই প্রশ্নের উত্তর দেয়!
qJake

4
এটা কি আসলেই কৃপণ, যে আমি উইন্ডোতে রাখা সমস্ত ধরণের নিয়ন্ত্রণের জন্য অবশ্যই শৈলী নির্দিষ্ট করব, কেবল সকলের জন্য সাধারণ কিছু মূল জিনিসের জন্য নয় ???
Ondřej

7

ফ্রেডরিক হেডব্ল্যাড উত্তর হিসাবে আপনি নিয়ন্ত্রণ থেকে উত্তরাধিকার সূত্রে প্রাপ্ত সমস্ত উপাদানকে প্রভাবিত করতে পারেন।

তবে আপনি একই স্টাইলের সাহায্যে পাঠ্য ব্লক এবং বোতামের জন্য স্টাইল প্রয়োগ করতে পারবেন না।

এটা করতে:

    <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}"/>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.