none
Tabs von Menüband zeigen eingefügt Buttons nicht ganz an RRS feed

  • Frage

  • Hallo Leute,

    Ich versuche gerade ein Menüband mit WPF C# aufzubauen. Dabei habe ich allerdings das Problem, dass wenn ich einen Tab hinzufüge und in diesen einen Button setzen will, der Button ganz unten im Tab platziert ist, und ich ihn nicht nach oben schieben kann. Habe jetzt 2 Stunden zig Einstellungen ausprobiert um ihn nach oben zu bekommen und nichts klappt. Weiß wer, welche Einstellungen ich ändern muss? Vielen Dank schon mal 

    Matthias


    Freitag, 23. Mai 2014 10:14

Antworten

  • In der ToolBox kann alles drinn stehen - hilft also nicht. Wir brauchen den Code.

    Um dein Konto zu verifizieren antworte bitte auf Verify Your Account.

    Wenn du das Ribbon aus dem oben genannten Verweis nimmst, dann musst du auch den Ribbon-Button etc. einsetzen. Ein  normaler Button Funktioniert nicht. Hier mal ein Beispiel dazu:

    <Ribbon HorizontalAlignment="Left" Margin="10,72,0,0" VerticalAlignment="Top" Width="446">
        <RibbonTab Header="Start">
            <RibbonGroup Header="Zwischenablage">
                <RibbonButton Label="Einfügen" SmallImageSource="Img1.png"/>
                <RibbonButton Label="Kopieren" SmallImageSource="Img2.png"/>
            </RibbonGroup>
        </RibbonTab>
    </Ribbon>
    Durch die RibbonGroup (ist erforderlich), werden die Buttons automatisch angeordnet und auch die Bildgröße wird automatisch angepasst.

    Tom Lambert - C# MVP
    Bitte bewertet- und markiert Beiträge als Antwort. Danke.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Freitag, 23. Mai 2014 11:36
    Moderator

Alle Antworten

  • Hallo,
    zeige bitte deinen Code. Verwedest du ein Thirdpartytool/das MS Ribbon?

    Wenn es ein 100%ig selbst geschriebenes Control werden soll, dann musst du in die TabPage ein Grid o.ä. hinein legen, in dem du dann die Controls ausrichten kannst. Das der Button unten hängt liegt wahrscheinlich an der VerticalAlignment-Eigenschaft des Buttons. Wenn diese auf Top steht, sollte er oben sein.

    An deiner Stelle würde ich aber ein vorhandenes Control benutzen. Das würde dir viel arbeit abnehmen. Ab .NET 4.0 wird beispielsweise ein Ribbon in der System.Windows.Controls.Ribbon.dll mitgeliefert. Mehr dazu: Link 1 (Dokumentation und Beispiel eines Ribbon Windows), Link 2


    Tom Lambert - C# MVP
    Bitte bewertet- und markiert Beiträge als Antwort. Danke.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Freitag, 23. Mai 2014 10:50
    Moderator
  • Hallo, 

    Ich verwende Bauteile aus der Toolbox. Meine Visual Studio Version ist Professional 2013.  VerticalAlignment habe ich schon verändert, was zwar den Button nach oben zeigen, ihn aber ebenfalls nicht vollständig angezeigen lies. 

    Ich würde gerne ein Bild hinzufügen, aber es geht nicht weil mein Konto noch nicht überprüft wurde :(.

    Freitag, 23. Mai 2014 11:15
  • In der ToolBox kann alles drinn stehen - hilft also nicht. Wir brauchen den Code.

    Um dein Konto zu verifizieren antworte bitte auf Verify Your Account.

    Wenn du das Ribbon aus dem oben genannten Verweis nimmst, dann musst du auch den Ribbon-Button etc. einsetzen. Ein  normaler Button Funktioniert nicht. Hier mal ein Beispiel dazu:

    <Ribbon HorizontalAlignment="Left" Margin="10,72,0,0" VerticalAlignment="Top" Width="446">
        <RibbonTab Header="Start">
            <RibbonGroup Header="Zwischenablage">
                <RibbonButton Label="Einfügen" SmallImageSource="Img1.png"/>
                <RibbonButton Label="Kopieren" SmallImageSource="Img2.png"/>
            </RibbonGroup>
        </RibbonTab>
    </Ribbon>
    Durch die RibbonGroup (ist erforderlich), werden die Buttons automatisch angeordnet und auch die Bildgröße wird automatisch angepasst.

    Tom Lambert - C# MVP
    Bitte bewertet- und markiert Beiträge als Antwort. Danke.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Freitag, 23. Mai 2014 11:36
    Moderator
  • Mein Code sieht folgendermaßen aus:

    <Window x:Class="RibbonControl.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="93*"/>
                <RowDefinition Height="230*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="0*"/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <Ribbon HorizontalAlignment="Left" VerticalAlignment="Top" Width="486" Grid.ColumnSpan="2" Height="138" Grid.RowSpan="2">
                <RibbonTab Header="Datei" HorizontalAlignment="Left" Height="88.8" VerticalAlignment="Top" Width="484.8">
                    <RibbonButton Content="RibbonButton" Height="100" Width="100"/>
                </RibbonTab>
            </Ribbon>
    
        </Grid>
    </Window>
    

    Ich habe keinen normalen Button verwendet, sondern einen namens RibbonButton.

    Freitag, 23. Mai 2014 11:54
  • Durch die RibbonGroup (ist erforderlich), werden die Buttons automatisch angeordnet und auch die Bildgröße wird automatisch angepasst.

    Ohne geht es nicht...

    Beachte auch, das die Content-Eigenschaft keine Wirkung zeigt. Dafür gibt es aber die Label-Eigenschaft. Auch eine feste Größe sollte man in einem Ribbon vermeiden. Schließlich ist das Tolle am Ribbon, das die Größe von selbst geregelt wird. Wie sich das Ribbon verändert ist beispielsweise im Office gut zu sehen.


    Tom Lambert - C# MVP
    Bitte bewertet- und markiert Beiträge als Antwort. Danke.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Freitag, 23. Mai 2014 12:08
    Moderator
  • Wo muss ich den Code einfügen?
    Freitag, 23. Mai 2014 12:23
  • Im Ribbon!?

    Lies bitte das, was ich schreibe. Wenn du nochmal ein vollständiges Beispiel brauchst, ich verlinkte bereits in meiner ersten Antwort eins. (In viele Klassedokumentationen der MSDN sind auch Beispiele enthalten.)


    Tom Lambert - C# MVP
    Bitte bewertet- und markiert Beiträge als Antwort. Danke.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Freitag, 23. Mai 2014 12:41
    Moderator
  • Danke jetzt funktionierts:).

    Bin Anfänger, was XML betrifft. 

    Freitag, 23. Mai 2014 12:55
  • XAML = Extensible Application Markup Language ;)

    Wenn deine Frage beantwortet ist, markiere bitte den Post (oder mehrere) als Antwort, der die Frage am besten beantwortet hat.


    Tom Lambert - C# MVP
    Bitte bewertet- und markiert Beiträge als Antwort. Danke.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Freitag, 23. Mai 2014 13:38
    Moderator