[Wpf] هل يمكن أن يكون "مربع للقراءة فقط" على "وقراءة فقط"؟



Answers

كان لي نفس القضية. حلت ذلك من خلال ترك إيسنابلد تعيين إلى ترو والتعامل مع الحدث بريموسدون من ليستبوكس. في مجموعة معالج e.Handled إلى صحيح في حالة كنت لا تريد أن يكون تحريرها.

    private void lstSMTs_PreviewMouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        e.Handled = !editRights;
    }
Question

لدينا سيناريو حيث نريد لعرض قائمة من العناصر وتشير إلى العنصر الذي هو "الحالي" (مع علامة السهم قليلا أو تغيير لون الخلفية).

إيتمسكونترول ليست جيدة بالنسبة لنا، لأننا بحاجة إلى سياق "سيلكتيديتم". ومع ذلك، فإننا نريد نقل التحديد بشكل جماعي وعدم السماح للمستخدم بتغييره.

هل هناك طريقة بسيطة لجعل ليستبوكس غير تفاعلية؟ يمكننا أن نثني عليه عن طريق عمدا البلع أحداث الماوس ولوحة المفاتيح، ولكن أنا في عداد المفقودين بعض الممتلكات الأساسية (مثل وضع "إيسنابلد" إلى كاذبة دون التأثير على أسلوبها البصري) الذي يعطينا ما نريد؟

أو ... هل هناك عنصر تحكم وف آخر هذا هو أفضل من كلا العالمين - عنصر تحكم مع خاصية سيلكتيديتم؟