Πώς να καταστήσει έναν έλεγχο για να μοιάζουν με σύνθετο πλαίσιο με ενεργοποιημένο το Visual Styles;

ψήφοι
28

Έχω ένα στοιχείο ελέγχου που διαμορφώνεται σε ένα σύνθετο πλαίσιο . Θέλω να καταστήσουν τον έλεγχο, έτσι ώστε ο έλεγχος των συνόρων μοιάζει με εκείνη ενός προτύπου σύνθετο πλαίσιο των Windows . Συγκεκριμένα, έχω ακολουθήσει την τεκμηρίωση του MSDN και όλη η απόδοση του ελέγχου είναι σωστή εκτός από την απόδοση όταν ο έλεγχος είναι απενεργοποιημένη.

Ακριβώς για να είναι σαφής, αυτό είναι ένα σύστημα με το Visual Styles ενεργοποιημένη. Επίσης, όλα τα μέρη του ελέγχου είναι σωστή, εκτός από το περίγραμμα γύρω από ένα άτομα με ειδικές ανάγκες ελέγχου, η οποία δεν ταιριάζει με την αναπηρία Σύνθετο πλαίσιο σύνορα χρώμα.

Είμαι χρησιμοποιώντας το VisualStyleRenderer τάξη. MSDN προτείνει τη χρήση του VisualStyleElement.TextBoxστοιχείου για το πλαίσιο κειμένου μέρος του Σύνθετο πλαίσιο ελέγχου, αλλά ένα πρότυπο με αναπηρία πλαίσιο κειμένου και ένα πρότυπο με ειδικές ανάγκες σύνθετο πλαίσιο συντάξει λίγο διαφορετικά (το ένα έχει ένα ελαφρύ γκρι περίγραμμα, το άλλο ένα ελαφρύ μπλε περίγραμμα).

Πώς μπορώ να πάρω τη σωστή απόδοση του ελέγχου σε κατάσταση ειδικές ανάγκες;

Δημοσιεύθηκε 05/08/2008 στις 22:19
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
8

Δεν είμαι 100% σίγουρος αν αυτό είναι αυτό που ψάχνετε, αλλά θα πρέπει να ελέγξετε έξω το VisualStyleRenderer στο System.Windows.Forms.VisualStyles-ονομάτων.

  1. VisualStyleRenderer τάξη (MSDN)
  2. Πώς να: Αποδώστε ένα οπτικό στυλ Στοιχείο (MSDN)
  3. VisualStyleElement.ComboBox.DropDownButton.Disabled (MSDN)

Από VisualStyleRenderer δεν θα λειτουργήσει αν ο χρήστης δεν έχει οπτικό στυλ ενεργοποιημένη (αυτός / αυτή μπορεί να λειτουργεί «κλασικό τρόπο λειτουργίας» ή ένα λειτουργικό σύστημα πριν από τα Windows XP) θα πρέπει να έχετε πάντα μια εναλλακτική στην τάξη ControlPaint.

// Create the renderer.
if (VisualStyleInformation.IsSupportedByOS 
    && VisualStyleInformation.IsEnabledByUser) 
{
    renderer = new VisualStyleRenderer(
        VisualStyleElement.ComboBox.DropDownButton.Disabled);
}

και στη συνέχεια αρέσει αυτό κατά την κατάρτιση:

if(renderer != null)
{
    // Use visual style renderer.
}
else
{
    // Use ControlPaint renderer.
}

Η ελπίδα αυτό βοηθά!

Απαντήθηκε 16/08/2008 στις 22:28
πηγή χρήστη

ψήφοι
1

Είναι μία από τις ControlPaint μεθόδους χρήσιμες για αυτό; Αυτό είναι αυτό που συνήθως χρησιμοποιούν για την παραγγελία που παρέχονται ελέγχους.

Απαντήθηκε 16/08/2008 στις 20:58
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more