এখানে কোনও তালিকাবক্স নেই e


189

আমি কীভাবে একটি তালিকা বাক্সে নির্বাচনটি অক্ষম করব?


1
আপনি এমন একটি উদাহরণ প্রদান করতে পারেন যেখানে আপনি বেছে নিতে পারবেন না এমন তালিকাবক্স থাকা বৈধ? যেহেতু মূল আচরণটি আইটেম নির্বাচন করা select আমি সম্ভবত এটি প্রদর্শনের জন্য অন্য কোনও উপায় বেছে নিয়েছি ((এটি আমার সমালোচক হওয়ার চেষ্টা নয়, যেখানে এটি ঘটতে পারে সে সম্পর্কে সত্যিকার আগ্রহ)
মার্থিন

3
@ মার্টিন: উদাহরণস্বরূপ আপনি যদি কোনও তালিকাবক্সাইটেম থেকে সামগ্রী টেনে নিতে চান - এই ক্ষেত্রে আপনি সম্ভবত সেই আইটেমটি নির্বাচন করতে আগ্রহী নন। করাও যখন একটি আইটেম টেনে: তালিকা বাক্সে পরিবর্তনের নির্বাচিত আইটেমের যখন আপনি তালিকা বাক্সে মধ্যে টেনে নিয়ে - এই পোস্টটিকে দেখতে পারবেন stackoverflow.com/questions/7589142/...
Danield

1
আমি বিশ্বাস করি যে শিমি তালিকাবক্সটি ব্যবহার করতে চায় তার কারণ হ'ল জিজ্ঞাসাবাদকটি লিস্টবক্সটি কিছু সময় চয়নযোগ্য করে তুলতে পারে। প্রশ্নটিও আমার কাছে মূল্যবান। বলুন আপনি একটি প্লে কার্ড গেম তৈরি করছেন। আপনি আপনার কার্ডগুলি থেকে একটি কার্ড নির্বাচন করতে পারেন, কখনও কখনও আপনি একাধিক নির্বাচন করতে পারেন এবং অন্য সময়ে আপনি কোনওটি নির্বাচন করতে পারেন না।
Gqqnbig

1
এছাড়াও, কখনও কখনও আপনার কাছে 10 টি কার্ড থাকে এবং এর মধ্যে কেবল 4 টি নির্বাচনযোগ্য। 4 এর মধ্যে আপনি 3 টি পর্যন্ত নির্বাচন করতে পারেন
Gqqnbig

1
@ মার্থিন: যখন আপনার কোনও লিস্টবক্সে গ্রিডভিউ থাকে। গ্রিডভিউ শিরোনামগুলি এমন অনেকগুলি কার্যকারিতা সরবরাহ করে যা অন্য কোথাও উপলভ্য নয়। এবং গ্রিডভিউর কক্ষে আপনার সম্পাদনা নিয়ন্ত্রণ রয়েছে।
রবিন ডেভিস

উত্তর:


264

পন্থা 1 - ItemsControl

আপনার অন্যান্য দিকগুলির প্রয়োজন না হলে আপনি পরিবর্তে ListBoxব্যবহার করতে পারেন ItemsControl। এটি আইটেমগুলিতে রাখে ItemsPanelএবং নির্বাচনের ধারণা নেই।

<ItemsControl ItemsSource="{Binding MyItems}" />

ডিফল্টরূপে, ItemsControlতার শিশু উপাদানগুলির ভার্চুয়ালাইজেশন সমর্থন করে না। আপনার যদি প্রচুর আইটেম থাকে তবে ভার্চুয়ালাইজেশন মেমরির ব্যবহার হ্রাস করতে এবং কর্মক্ষমতা উন্নত করতে পারে ListBox, সেক্ষেত্রে আপনি পদ্ধতির ২ এবং স্টাইলটি ব্যবহার করতে পারেন বা আপনার ভার্চুয়ালাইজেশন যুক্ত করতে পারেনItemsControl

পদ্ধতির 2 - স্টাইলিং ListBox

বিকল্পভাবে, কেবল তালিকাবক্সকে এমন স্টাইল করুন যাতে নির্বাচনটি দৃশ্যমান হয় না।

<ListBox.Resources>
  <Style TargetType="ListBoxItem">
    <Style.Resources>
      <!-- SelectedItem with focus -->
      <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
                       Color="Transparent" />
      <!-- SelectedItem without focus -->
      <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}"
                       Color="Transparent" />
      <!-- SelectedItem text foreground -->
      <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}"
                       Color="Black" />
    </Style.Resources>
    <Setter Property="FocusVisualStyle" Value="{x:Null}" />
  </Style>
</ListBox.Resources>

24
না, এটি কেবলমাত্র চাক্ষুষ প্রভাবকে বদলে দেবে, আসল নির্বাচনের আচরণ নয়
টমাস লেভস্ক

8
আমার প্রথম পরামর্শ ছিল আইটেমসন্ট্রোল ব্যবহার করা। আপনি কি মিস করেছেন? :)
ড্র নোকস

5
এই মন্তব্যগুলি পুনরায় পড়ার সাথে আমি উল্লেখ করতে চাই যে @ থমাস লেভেস্কের মন্তব্যটি আমি যে দ্বিতীয় পদ্ধতির দেখায় তার মধ্যে শুধুমাত্র সত্য। প্লেইন ব্যবহার করে ItemsControlনির্বাচনের যে কোনও ধারণা সম্পূর্ণরূপে মুছে ফেলা হবে।
ড্রয় নোকস

1
আইটেমসন্ট্রোল সমাধান বাক্স স্ক্রোলিং সমর্থন (স্ক্রোলবার এবং মাউসওয়েল) সরান।
MuiBienCarlota

1
পদ্ধতির 1 - আইটেমসন্ট্রোলের জন্য +1। যদি আমাদের কাছে একটি বিশাল পৃষ্ঠা থাকে যা আমাদের স্ক্রোল করতে হয়, যদি ব্যবহারকারী কোনও তালিকাবক্সের উপরে মাউস দেয় তবে এটি কার্যকরভাবে মাউসভিয়েলটিকে অক্ষম করে কারণ তালিকাবক্সটি মাউস হুইল ইভেন্টগুলি গ্র্যাভ করে। এর অর্থ হ'ল ব্যবহারকারী হতাশ হয়েছেন যে পুরো পৃষ্ঠাটি স্ক্রোল করতে ব্যবহৃত মাউসওয়েলটি এলোমেলোভাবে কাজ করা বন্ধ করবে, মাউস একটি তালিকাবক্সের উপরে আছে কিনা তার উপর নির্ভর করে।
কনটাঙ্গো

159

আমি আমার জন্য কাজ করে একটি খুব সহজ এবং সোজা সামনের সমাধান পেয়েছি, আমি আশা করি এটি আপনার জন্যও করবে

<ListBox ItemsSource="{Items}">
    <ListBox.ItemContainerStyle>
       <Style TargetType="{x:Type ListBoxItem}">
           <Setter Property="Focusable" Value="False"/>
       </Style>
    </ListBox.ItemContainerStyle>
</ListBox>

আমি মনে করি তিনি এখানে এটি বেশ ভালভাবে পেরিয়েছেন
সিড

3
এটি নিখুঁত। এটি বাছাই করা আইটেম এবং অন্যান্য নিয়ন্ত্রণগুলি বোতামগুলির মতো এখনও কাজ করে না। ঠিক আমি যা খুঁজছিলাম
ফ্রাঙ্ক

1
এই পদ্ধতির জন্য +1। যদি আমাদের কাছে একটি বিশাল পৃষ্ঠা থাকে যা আমাদের স্ক্রোল করতে হয়, যদি ব্যবহারকারী কোনও তালিকাবক্সের উপরে মাউস দেয় তবে এটি কার্যকরভাবে মাউসভিয়েলটিকে অক্ষম করে কারণ তালিকাবক্সটি মাউস হুইল ইভেন্টগুলি গ্র্যাভ করে। এর অর্থ হ'ল ব্যবহারকারী হতাশ হয়েছেন যে পুরো পৃষ্ঠাটি স্ক্রোল করতে ব্যবহৃত মাউসওয়েলটি এলোমেলোভাবে কাজ করা বন্ধ করবে, মাউস একটি তালিকাবক্সের উপরে আছে কিনা তার উপর নির্ভর করে।
কনটাঙ্গো

চমৎকার। আইটেম নির্বাচনের কারণ না ঘটানোর জন্য আইটেমগুলিতে বোতামগুলির দরকার হলে একই ধরণের পদ্ধতির বিষয়টিও আমার পক্ষে কাজ করেছিল - তবে কেবল যদি আইটেমের অন্য অঞ্চলটি ক্লিক করা হয়। কেবল বোতাম সেট করুন Focusable = "False"!
জনি আদমিত

1
মাউসওভার হাইলাইট করতে অপসারণ করতে এই অতিরিক্ত সম্পত্তি যুক্ত করুন: <Setter Property="IsHitTestVisible" Value="False" />
ডোনবয়েটট

25

আপনি একটি এর ItemsControlপরিবর্তে একটি ব্যবহার করে স্যুইচ করতে পারেন ListBox। একটি ItemsControlনির্বাচনের ধারণা নেই, তাই বন্ধ করার মতো কিছুই নেই।


2
চারু। আমি কখনই জানতাম না যে আপনি সরাসরি আইটেমসন্ট্রোল ঘোষণা করতে পারবেন, আমি ভেবেছিলাম এটি ভার্চুয়াল (মুস্টওভারাইড), ধন্যবাদ !!!
শিমি ওয়েটজ্যান্ডলার

তবে আইটেমসন্ট্রোল কি এখনও আমার আইটেমগুলিকে এক লাইনে রেন্ডার করবে?
চেরি চেং

@ হ্যাঁ হ্যাঁ এটি করুন, এবং এছাড়াও, আপনি সর্বদা ম্যানুয়ালি সেট করতে পারেন ItemTemplate
শিমি ওয়েটজ্যান্ডলার

2
এটি খুব বেশি কার্যকারিতা হ'ল শেষ করে - যেমন, স্ক্রোলিং।
জেফ

@ জেফ আপনি স্ক্রোলিংটি পেতে আইটেমস নিয়ন্ত্রণটি একটি স্ক্রোলভিউয়ারে মোড়ানো করতে পারেন।
উইলকা

12

বিবেচনা করার মতো আর একটি বিকল্প হ'ল তালিকাবক্সআইটেমগুলি অক্ষম করা। নিম্নলিখিত স্নিপেটে যেমন দেখানো হয়েছে আইটেমকন্টেইনার স্টাইল সেট করে এটি করা যেতে পারে।

<ListBox ItemsSource="{Binding YourCollection}">
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="IsEnabled" Value="False" />
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>

আপনি যদি পাঠ্যটি ধূসর হতে না চান তবে নীচের কীটি দিয়ে শৈলীর সংস্থানগুলিতে ব্রাশ যুক্ত করে অক্ষম রঙ নির্দিষ্ট করতে পারেন: {x: স্থিতিশীল সিস্টেমল্যান্ড. গ্রেটেক্সট ব্রাশকি}} অন্য সমাধান হ'ল তালিকাবক্স আইটেম নিয়ন্ত্রণ টেম্পলেটটিকে ওভাররাইড করা।


সহজ এবং কাজ, ধন্যবাদ! এবং এটি ডাব্লুপি 8.1 রানটাইমের পাশাপাশি প্রযোজ্য।
মালুতেক

8

এটি কাজ করবে, যদি আইটেমসন্ট্রোলের পরিবর্তে আমার তালিকার বাক্স ব্যবহার করার প্রয়োজন হয় তবে আমি কেবল আইটেমগুলি প্রদর্শন করছি যা নির্বাচনযোগ্য নয়, আমি ব্যবহার করি:

<ListBox.ItemContainerStyle>
    <Style TargetType="ListBoxItem">
        <Setter Property="IsHitTestVisible" Value="False" />
    </Style>
</ListBox.ItemContainerStyle>

3

এখানে বেশ ভাল উত্তর, কিন্তু আমি কিছুটা আলাদা জন্য সন্ধান করছিলাম: আমি নির্বাচন চাই, তবে এটি চাই না (বা অন্য কোনও ক্ষেত্রে প্রদর্শিত হবে)।

উপরের সমাধানগুলি আমার পক্ষে (সম্পূর্ণরূপে) কাজ করে না, তাই আমি অন্য কিছু করেছি: আমি আমার তালিকাবক্সের জন্য একটি নতুন শৈলী ব্যবহার করেছি, যা টেমপ্লেটগুলিকে পুরোপুরি নতুনভাবে সংজ্ঞায়িত করে:

<Style x:Key="PlainListBoxStyle" TargetType="ListBox">
    <Setter Property="ItemContainerStyle">
        <Setter.Value>
            <Style TargetType="ListBoxItem">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ListBoxItem">
                            <ContentPresenter />
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </Setter.Value>
    </Setter>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ListBox}">
                <ItemsPresenter/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

এটি দিয়ে আপনি সহজেই নিজের পছন্দটি হাইলাইট করে যুক্ত করতে পারেন বা আপনি যদি কিছু চান না তবে এটিকে ছেড়ে যান।


2

যদিও @ ড্রু নোকসের উত্তরটি বেশিরভাগ ক্ষেত্রেই দ্রুত সমাধান হ'ল এক্স: স্ট্যাটিক ব্রাশগুলি সেট করার সাথে কিছুটা ত্রুটি দেখা দেয়।

আপনি যখন x: স্ট্যাটিক ব্রাশগুলি সেট করবেন সেট করার পরে তালিকার আইটেমের মধ্যে থাকা সমস্ত বাচ্চাদের নিয়ন্ত্রণ এই স্টাইলের অধিকারী হবে।

এর অর্থ এই যে, এটি তালিকার বাক্স আইটেমটির হাইলাইটিং নিষ্ক্রিয় করার জন্য কাজ করবে, তবে এটি শিশু নিয়ন্ত্রণের জন্য অনাকাঙ্ক্ষিত প্রভাবের কারণ হতে পারে।

উদাহরণস্বরূপ, যদি আপনার তালিকাবক্সআইটেমের মধ্যে একটি কম্বোবক্স থাকে তবে এটি কম্বোবক্সের মধ্যে হাইলাইট করার চেয়ে মাউসটিকে অক্ষম করবে।

পরিবর্তে, এই স্ট্যাকওভারফ্লো থ্রেডে উল্লিখিত সমাধান হিসাবে আচ্ছাদিত হিসাবে নির্বাচিত, নির্বাচিত এবং মাউসওভার ইভেন্টগুলির জন্য ভিজ্যুয়াল স্টেটগুলি সেট করার বিষয়ে বিবেচনা করুন: শিশুদের নিয়ন্ত্রণ নয়, তালিকাবক্সআইটেম থেকে নিয়ন্ত্রণ হাইলাইট সরান

-Frinny


2

আমি আরও একটি সমাধান প্রস্তাব। কেবল পুনরায় টেমপ্লেট এর ListBoxItemচেয়ে বেশি কিছু নয় ContentPresenter, ...

<Style TargetType="{x:Type ListBoxItem}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ListBoxItem}">
                <ContentPresenter />
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

আমার এই পদ্ধতির জন্য কারণগুলি নিম্নরূপ:

  1. আমার ক্ষেত্রে, আমি আমার সামগ্রীর সাথে ব্যবহারকারীর ইন্টারঅ্যাকশনটি অক্ষম করতে চাই না ListBoxItemsতাই সেট করার সমাধানটি আমার পক্ষে কার্যকর IsEnabledহবে না।

  2. ListBoxItemরঙ-সম্পর্কিত বৈশিষ্ট্যগুলিকে ওভাররাইড করে পুনরায় স্টাইল করার চেষ্টা করে এমন অন্যান্য সমাধান কেবল সেই উদাহরণগুলির জন্য কাজ করে যেখানে আপনি নিশ্চিত হন যে টেমপ্লেটটি সেই বৈশিষ্ট্যগুলি ব্যবহার করে। এটি ডিফল্ট শৈলীর জন্য দুর্দান্ত, তবে কাস্টম শৈলীর সাথে বিরতি।

  3. যে সমাধানগুলি একটি স্ট্যান্ডার্ডের তুলনায় সম্পূর্ণ ভিন্ন চেহারা রয়েছে এবং ভার্চুয়ালাইজেশন সমর্থন করে না, এর অর্থ সমাধানগুলি ItemsControlআরও অনেকগুলি বিষয় ভেঙে দেয়, এর অর্থ আপনাকে যাহাই হউক না কেন পুনরায় টেমপ্লেট করতে হবে ।ItemsControlListBoxItemsPanel

উপরেরগুলি এর ডিফল্ট চেহারা পরিবর্তন করে না ListBox, এর জন্য ডেটা টেম্পলেটগুলিতে আইটেমগুলি অক্ষম করে না ListBox, ডিফল্টরূপে ভার্চুয়ালাইজেশন সমর্থন করে এবং আপনার অ্যাপ্লিকেশনটিতে যে স্টাইলগুলি ব্যবহৃত হতে পারে বা না ব্যবহৃত হতে পারে তার স্বাধীনভাবে কাজ করে। এটি KISS নীতি।


1

দ্রষ্টব্য: এই সমাধানটি কীবোর্ড নেভিগেশন বা ডান ক্লিকের মাধ্যমে নির্বাচনটি অক্ষম করে না (উদাহরণস্বরূপ, স্থান কী দ্বারা অনুসরণ করা তীর কীগুলি)

পূর্ববর্তী সমস্ত উত্তরগুলি হয় পুরোপুরি নির্বাচন করার ক্ষমতাটি সরিয়ে দেয় (রানটাইমটিতে স্যুইচিং নেই) বা ভিজ্যুয়াল এফেক্টটি সরিয়ে ফেলবে, তবে নির্বাচনটি নয়।

তবে আপনি যদি কোড দ্বারা নির্বাচনটি নির্বাচন এবং নির্বাচন করতে সক্ষম হতে চান তবে ব্যবহারকারী ইনপুট দ্বারা নয়? পুরো লিস্টবক্সটি অক্ষম না করার সময় আপনি কি ব্যবহারকারীর নির্বাচন "হিমায়িত" করতে চান?

সমাধানটি হ'ল সম্পূর্ণ আইটেমস কনটেন্টপ্যাম্পলেটটি এমন একটি বোতামে গুটিয়ে রাখবে যাতে কোনও ভিজ্যুয়াল ক্রোম নেই। বোতামের আকার অবশ্যই আইটেমের আকারের সমান হতে হবে, সুতরাং এটি পুরোপুরি coveredাকা থাকবে। এবার বোতামটির ইসএনবলড-প্রপার্টি ব্যবহার করুন:

আইটেমের নির্বাচন-অবস্থা "স্থির" করতে বোতামটি সক্ষম করুন। এটি কাজ করে কারণ সক্ষম বোতামটি সমস্ত মাউস ইভেন্টগুলি তালিকার আইটেম-ইভেন্টহ্যান্ডলারের কাছে বুদবুদ দেওয়ার আগেই খায়। আপনার আইটেমডেটা টেম্পলেটটি এখনও মাউসএভেন্টস গ্রহণ করবে কারণ এটি বোতামগুলির সামগ্রীর অংশ।

ক্লিক করে নির্বাচন পরিবর্তন করতে সক্ষম করতে বোতামটি অক্ষম করুন।

<Style x:Key="LedCT" TargetType="{x:Type ListBoxItem}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ListBoxItem}">
                <Button IsEnabled="{Binding IsSelectable, Converter={StaticResource BoolOppositeConverter}}" Template="{DynamicResource InvisibleButton}">
                        <ContentPresenter />
                </Button>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

<ControlTemplate x:Key="InvisibleButton" TargetType="{x:Type Button}">
    <ContentPresenter/>
</ControlTemplate>

dartrax


1

হতে পারে আপনার আইটেমকন্ট্রোলের কেবলমাত্র কার্যকারিতা প্রয়োজন? এটি নির্বাচনের অনুমতি দেয় না:

<ItemsControl ItemsSource="{Binding Prop1}" ItemTemplate="{StaticResource DataItemsTemplate}" />

3
@ শিম্মি: তুচ্ছ উত্তর একইরকম হওয়ার পক্ষে সাধারণ is এখানে কোনও পতাকার যোগ্য কোনও সদৃশ নেই। আপনার যদি এই সম্পর্কে আরও কোনও প্রশ্ন থাকে তবে দয়া করে মেটা স্ট্যাক ওভারফ্লোতে জিজ্ঞাসা করুন ।

0

আপনি আপনার তালিকাবক্সের উপরে একটি পাঠ্যবন্ধ আটকে রাখতে পারেন, এটি আপনার অ্যাপ্লিকেশনটির চেহারা পরিবর্তন করবে না এবং এটি কোনও আইটেম নির্বাচন করার অনুমতি দেয় না।


1
যদিও আপনাকে এখনও ট্যাব নেভিগেশন অক্ষম করতে হবে।
আমন্ডুহ

0

উদাহরণস্বরূপ উইন্ডোজ ফোনে কাজ করা একটি সাধারণ ফিক্সটি নির্বাচিত আইটেমটি বাতিল করতে বাছাইয়ের সেটিংসে রয়েছে:

    <ListBox SelectionChanged="ListBox_SelectionChanged">

এবং পিছনে কোডে:

    private void ListBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
    {
        (sender as ListBox).SelectedItem = null;
    }

0

আমি একটি সঠিক উপায় খুঁজে পেয়েছি।
লাস্টবক্স ইশহিটটেষ্টকে ভুসিলে সেট করুন যাতে ব্যবহারকারী মাউস বাড়াতে বা স্ক্রোল করতে বা স্ক্রোল করতে না পারে।
প্রাকদর্শনগটকিবোর্ডফোকাস ক্যাপচার করুন e হ্যান্ডলড = সত্য যাতে ব্যবহারকারী কীবোর্ড ট্যাব, তীর আপ, তীর নীচে বাছাই করতে পারেন item

এই উপায় সুবিধা:

  1. লিস্টবক্স আইটেমগুলি ফোরগ্রাউন্ড গ্রে হয়ে যাবে না।
  2. লিস্টবক্স ব্যাকগ্রাউন্ড স্বচ্ছতে সেট করতে পারে

xmal

<ListBox Name="StudentsListBox" ItemsSource="{Binding Students}" ScrollViewer.VerticalScrollBarVisibility="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Disabled" BorderThickness="0" Background="Transparent" IsHitTestVisible="False" PreviewGotKeyboardFocus="StudentsListBox_PreviewGotKeyboardFocus">

    <ListBox.ItemContainerStyle>
        <Style TargetType="{x:Type ListBoxItem}">
            <Setter Property="Padding" Value="0"/>
            <Setter Property="Margin" Value="0"/>

            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ListBoxItem}">
                        <Border x:Name="Bd">
                            <ContentPresenter/>
                        </Border>
                        <ControlTemplate.Triggers>
                            <MultiTrigger>
                                <MultiTrigger.Conditions>
                                    <Condition Property="Selector.IsSelectionActive" Value="False" />
                                    <Condition Property="IsSelected" Value="True" />
                                </MultiTrigger.Conditions>
                                <Setter TargetName="Bd" Property="Background" Value="Yellow" />
                                <Setter TargetName="Bd" Property="BorderBrush" Value="Transparent" />
                            </MultiTrigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ListBox.ItemContainerStyle>

    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Grid Margin="0,0,0,0">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="0" Name="GradeBlock" Text="{Binding Grade}" FontSize="12" Margin="0,0,5,0"/>
                <TextBlock Grid.Column="1" Name="NameTextBlock" Text="{Binding Name}" FontSize="12" TextWrapping="Wrap"/>
            </Grid>
        </DataTemplate>
    </ItemsControl.ItemTemplate>

</ListBox>

কোড

private void StudentsListBox_PreviewGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
    e.Handled = true;
}

-1

আমার জন্য সর্বোত্তম সমাধানটি হ'ল:

        <ListBox.ItemContainerStyle>
            <Style TargetType="{x:Type ListBoxItem}">
                <Setter Property="Focusable" Value="True"/>
                <Setter Property="IsHitTestVisible" Value="False" />
            </Style>
        </ListBox.ItemContainerStyle>

-3

ইসএনেবলড = মিথ্যা


2
এটি সব ধূসর করে তোলে, এটি আমি যা খুঁজছি তা নয়
শিমি ওয়েটস্যান্ডলার

1
তবে এটি
সোজাসাপ্টা

1
সোজা এগিয়ে উত্তর এই হল stackoverflow.com/questions/1398559/1398650#1398650 , কিন্তু ধন্যবাদ যাহাই হউক না কেন
কামিজ Weitzhandler

আমার জন্য খুব সাহায্য করুন, আমি ধূসর এবং অক্ষম চেয়েছিলাম!
মার্টিন রবিন্স

-3

আপনার তালিকা বাক্সে / ড্রপডাউনটিতে এক বা একাধিক বিকল্প অক্ষম করতে, আপনি নীচের মত "অক্ষম" বৈশিষ্ট্য যুক্ত করতে পারেন। এটি ব্যবহারকারীকে এই বিকল্পটি নির্বাচন করতে বাধা দেয় এবং এটি ধূসর রঙের ওভারলে পায়।

ListItem item = new ListItem(yourvalue, yourkey);
item.Attributes.Add("disabled","disabled");
lb1.Items.Add(item);

সেই সময় আপনি উঁচুতে উঠলেন এবং একটি ডাব্লুপিএফ প্রশ্নের উত্তর দিয়েছিলেন একটি এএসপি.এনইটি সমাধান দিয়ে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.