wpf - كيفية تعطيل التمرير داخل داتاغريد في وف c#




datagrid wpfdatagrid (4)

بمجرد تعطيل فرتيكالكرولبارفيسيبيليتي ل داتغريد الخاص بك، تحتاج إلى تعطيل وظيفة التمرير سكرولفيور مثل هذا:

ScrollViewer.CanContentScroll="False"

ولكن عند القيام به تأكد من أنك قد حددت بالفعل ارتفاع قياسي ل داتاغريد كامل و داتاغريد الصفوف بحيث يمكن للمستخدم رؤية كل الصفوف التي تريد أن يراها، وإلا فإن الصفوف المفروم لن يتم عرض المستخدم لا يمكن التمرير لأسفل لرؤيتها.

أتمنى أن يساعدك هذا.

لقد فعلت فرتيكالكرولبارفيسيبيليتي = "معطل" لأنني لا أريد أن يتم عرض المحتوى داخل داتاغريد الذي يعبر الارتفاع المعين. أنا لست قادرا على رؤية شريط التمرير بعد إعطاء البيان أعلاه.ولكن ما زلت يمكن التمرير لأسفل ورؤية الصفوف.يمكن لشخص يقول لي كيف يمكنني تعطيل التمرير معا؟ شكر


السماح داتاغريد لإظهار كل ما هو المحتوى (لذلك لا تحتاج شريط التمرير):

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <DataGrid x:Name="DataGrid" />
</Grid>

يمكنك من وضع النتيجة في أي مكان. انها سوف خفض انها حجم لأبعاد المالك


النهج الصحيح سيكون لتعطيل الهدف هيت

DataGrid.IsHitTestVisible = false;

الحل المقبول لم يعمل بالنسبة لي منذ كنت بحاجة إلى اختيار الصف. حلت كل ما عندي من القضايا عن طريق تعطيل داتاغريد بالغسل (لسحب الماوس) والتعامل مع الأحداث الرئيسية أسفل (لوحة المفاتيح). في زمل داتاغريد:

ScrollViewer.PanningMode="None"

و:

PreviewKeyDown="OnDatagridPreviewKeyDown"

في التعليمات البرمجية وراء:

private void OnDatagridPreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Right || e.Key == Key.Left)
        e.Handled = true;
}

HTH.

تعديل: ينطبق إجابتي على الأعمدة ولكن كل شيء مشابه للصفوف.