Eto: Questions sur le portage vers Eto

Créé le 16 juin 2017  ·  5Commentaires  ·  Source: picoe/Eto

Salut!

Je porte mon programme sur le framework Eto et lors du portage et du débogage de l'interface j'ai les questions suivantes :

  1. Existe-t-il un moyen de désactiver la mise à l'échelle des images dans les boutons (Bouton) et pourquoi est-il activé par défaut ?

  2. Pourquoi, lorsque le bouton est défini sur Activé = faux, le bouton devient pâle et l'icône reste lumineuse ? Comment cela peut-il être corrigé (mode WPF) ?

  3. Pourquoi dans les boutons du mode WinForms de la barre d'outils ne s'adaptent pas à la taille des images - une taille d'image moins réelle est sortie ? Pour cette raison, les images sont inférieures à la taille réelle et floues.

  4. Pourquoi n'y a-t-il absolument aucune barre d'état et quelles sont les options pour les remplacer, si elles sont vraiment nécessaires (Panneau + Étiquettes ?).

  5. Comment implémenter correctement CustomControl qui doit unir les propriétés des composants Drawable et Scrollable ? J'ai essayé d'en faire un hybride, mais cela n'a pas fonctionné. Drawable sera-t-il imbriqué dans Scrollable ? Ou bien y a-t-il une meilleure solution?

  6. Existe-t-il un moyen de définir l'alignement des valeurs dans les colonnes GridView ?

  7. Comment puis-je obtenir la fenêtre d'application active actuelle (s'il existe plusieurs fenêtres de document SDI qui ont les mêmes droits) ?

  8. Prévoyez-vous de créer un moteur comme NUnitForms à l'avenir - pour tester les applications d'interface utilisateur ?

  9. En mode WPF, si ClientSize n'est pas affecté à la boîte de dialogue, tout est parfaitement aligné avec la disposition spécifiée et la boîte de dialogue elle-même prend une bonne taille. Cependant, en mode WinForms, la boîte de dialogue s'avère petite et les composants ne s'alignent pas correctement. WinForms - pris en charge en tant que plate-forme ?

Pouvez-vous m'aider?

Commentaire le plus utile

Hey,

Je pense que vous devriez ouvrir des issues séparées pour chacun de vos problèmes, je ne peux répondre qu'à quelques points de la vôtre.
Eto n'a pas pour objectif d'agir de la même manière sur toutes les plateformes (comme @cwensley l'a dit dans certains des problèmes qui ont été soulevés), son objectif principal est de regarder et d'agir natif sur chaque plateforme, c'est la principale raison de vos problèmes. Vous pouvez résoudre certains d'entre eux en utilisant Styling

  1. Ceci peut être résolu en utilisant Styling
  2. Je pense que cela est lié à ce problème et je pense que cela peut être résolu par le style.
  3. Parce que c'est le comportement par défaut de WinForms (pour autant que je m'en souvienne lorsque j'ai travaillé avec des winforms) résolvable en stylisant
  4. Toutes les plates-formes n'ont pas/prennent en charge la barre d'état, si j'en ai besoin, comme vous l'avez dit, je crée une disposition empilée avec des éléments dedans.
  5. Pourquoi ne pas simplement mettre la disposition Drawable à Scrollable et rendre le contrôle Drawable aussi grand que vous le souhaitez ?
  6. TextBoxCell a une propriété appelée TextAlignment et VerticalAlignment :
    C# new GridColumn() { HeaderText = header, DataCell = new TextBoxCell() { Binding = binding, TextAlignment = TextAlignment.Center, VerticalAlignment = VerticalAlignment.Center }, };
  7. Vous avez déjà une réponse pour cela

Tous les 5 commentaires

Hey,

Je pense que vous devriez ouvrir des issues séparées pour chacun de vos problèmes, je ne peux répondre qu'à quelques points de la vôtre.
Eto n'a pas pour objectif d'agir de la même manière sur toutes les plateformes (comme @cwensley l'a dit dans certains des problèmes qui ont été soulevés), son objectif principal est de regarder et d'agir natif sur chaque plateforme, c'est la principale raison de vos problèmes. Vous pouvez résoudre certains d'entre eux en utilisant Styling

  1. Ceci peut être résolu en utilisant Styling
  2. Je pense que cela est lié à ce problème et je pense que cela peut être résolu par le style.
  3. Parce que c'est le comportement par défaut de WinForms (pour autant que je m'en souvienne lorsque j'ai travaillé avec des winforms) résolvable en stylisant
  4. Toutes les plates-formes n'ont pas/prennent en charge la barre d'état, si j'en ai besoin, comme vous l'avez dit, je crée une disposition empilée avec des éléments dedans.
  5. Pourquoi ne pas simplement mettre la disposition Drawable à Scrollable et rendre le contrôle Drawable aussi grand que vous le souhaitez ?
  6. TextBoxCell a une propriété appelée TextAlignment et VerticalAlignment :
    C# new GridColumn() { HeaderText = header, DataCell = new TextBoxCell() { Binding = binding, TextAlignment = TextAlignment.Center, VerticalAlignment = VerticalAlignment.Center }, };
  7. Vous avez déjà une réponse pour cela

Je suis gêné de demander mais je n'arrive pas à résoudre "Y a-t-il un moyen de désactiver la mise à l'échelle des images dans les boutons (Bouton) et pourquoi est-il activé par défaut ?" avec les styles suggérés par @SlowLogicBoy.
Le plus loin que j'ai pu aller est :

Style.Add<Eto.Wpf.Forms.Controls.ButtonHandler>(null, handler => ?????? ));

Pouvez-vous fournir un exemple sur la façon dont vous le faites?
Merci

Je ne connais pas wpf, alors voici ce que je peux vous donner :

using swc = System.Windows.Controls;

Style.Add<Eto.Wpf.Forms.Controls.ButtonHandler>(null, handler => {
    var grid = handler.Control.Content as swc.Grid;
    if(grid == null) return; //Something in ButtonHandler changed

    var imageCtrl = grid.GetChildOfType<swc.Image>().SingleOrDefault();
    if(imageCtrl == null) return; //Something in ButtonHandler changed

    //TODO: Stuff with imageCtrl
});

static IEnumerable<T> GetChildOfType<T>(this swc.Grid self)
{
    foreach (var item in self.Children)
    {
        if(item is T ctrl)
            yield return ctrl;
    }
}

Comment le bouton Eto est fait pour wpf

Merci @SlowLogicBoy , votre code est certainement un bon point de départ pour accéder au bouton Wpf, je vais essayer de continuer et de découvrir comment désactiver la mise à l'échelle par moi-même :)

Pour les enregistrements, l'extrait suivant fait le travail :

Style.Add<Eto.Wpf.Forms.Controls.ButtonHandler>(null, handler =>
{
    var grid = handler.Control.Content as swc.Grid;
    if (grid == null)
        return;
    var image = grid.Children.OfType<swc.Image>().FirstOrDefault();
    if (image == null)
        return;
    image.Stretch = System.Windows.Media.Stretch.None;
});

Merci @SlowLogicBoy pour son aide

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

azunyuuuuuuu picture azunyuuuuuuu  ·  23Commentaires

Krakean picture Krakean  ·  6Commentaires

TomQv picture TomQv  ·  6Commentaires

LaraSQP picture LaraSQP  ·  5Commentaires

katatunix picture katatunix  ·  12Commentaires