RibbonApplicationMenuItem ImageSource zu My.Resources

  • WPF

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von ichduersie.

    RibbonApplicationMenuItem ImageSource zu My.Resources

    Hallo,

    Ich beschäftige mich derzeit vermehrt mit WPF, weil Ich nicht drum rum komme. Jetzt versuche Ich derzeit einen kleinen Editor mit Ribbon zu erstellen, und habe ein Problem beim ApplicationMenu, weil Ich den Items auch Bilder geben möchte, was aber nicht ganz funktioniert (besser gesagt: Ich weiß nicht wie es geht und Google spuckt nichts aus!)

    Ich nehme an, dass Ich die ImageSource setzen muss. Leider funktioniert das nicht ganz. Wenn Ich ImageSource = "new.png" setze, kommt ein Fehler mit folgender Meldung (im Designer): "Die Datei C:\WINDOWS\System32\new.png wurde nicht gefunden". Also habe Ich die new.png nach System32 kopiert, hat aber leider nichts gebracht :/

    Außerdem würde Ich später gerne alle Bilder in der Exe einkompilliert haben, und nicht extern im Programm-Ordner rumliegen haben. Wie geht das?

    Übrigens, wenn Ich mit ImageSource="new.png" starten möchte, kommt folgender Fehler:

    Spoiler anzeigen

    Brainfuck-Quellcode

    1. Ein Ausnahmefehler des Typs "System.Windows.Markup.XamlParseException" ist in PresentationFramework.dll aufgetreten.
    2. Zusätzliche Informationen: Zeilennummer "12" und Zeilenposition "59" von "Die Angabe eines Werts für "System.Windows.Baml2006.TypeConverterMarkupExtension" führte zu einer Ausnahme.".
    3. Falls ein Handler für diese Ausnahme vorhanden ist, kann das Programm möglicherweise weiterhin sicher ausgeführt werden.


    Mein derzeitiger Code-Ansatz ist folgender:

    Quellcode

    1. <Window x:Class="MainWindow"
    2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4. Title="MainWindow" Height="350" Width="525">
    5. <Grid>
    6. <Ribbon>
    7. <Ribbon.ApplicationMenu>
    8. <RibbonApplicationMenu Margin="0,1,0,0" RenderTransformOrigin="0.5,0.5">
    9. <RibbonApplicationMenuItem Name="New" Header="Hallo" ImageSource="new.png"/>
    10. </RibbonApplicationMenu>
    11. </Ribbon.ApplicationMenu>
    12. </Ribbon>
    13. </Grid>
    14. </Window>


    Könnt Ihr mir da bitte helfen?

    LG
    Erstell dir einen neuen Ordner Images (oder wie auch immer du ihn nennen möchtest) im Projektmappenexplorer und kopier die Bilder dort hin. Du kannst dann in den Ressourcen des Windows (oder wahlweise auch in den anwendungsweiten Ressourcen) die Bilder als BitmapSources verfügbar machen:

    XML-Quellcode

    1. ​<Window.Resources>
    2. <BitmapImage x:Key="XYZ" UriSource=".\Images\xyz.png"/>
    3. ...
    4. </Window.Resources>

    Du kannst dann diese BitmapImages als ImageSource festlegen (vorausgesetzt ImageSource ist vom Typ ImageSource, wovon ich mal ausgehe):

    XML-Quellcode

    1. ImageSource="{StaticResource XYZ}"