Zitat von Abt
Das ist leider ein bekannter Bug, siehe [Preview 4] White line on the left of the window that vanishes once the window is resized
#4176
Danke!
Alles klar, dann brauch ich da keine Zeit mehr investieren.
Das mit dem Icon habe ich inzwischen übrigens lösen können.
Im Code-Behind muss man eine .ico Datei zuweisen - keine .png Datei.
Dann funktioniert's, dass auch bei Alt-Tab das richtige Symbol über der App angezeigt wird.
appWindow.SetIcon("Assets\\AppIcon.ico");
Ergänzung: Mittlerweile (nach Reboot) wird sogar ein kompletter dünner schwarzer rechteckiger Rahmen um das Window angezeigt - siehe Bild.
Ich habe jetzt alle Grids durchprobiert, das Border-Element entfernt, auch bei NavigationView entsprechend Background auf Transparent und BorderThickness auf 0 gesetzt, es bleibt immer dasselbe.
Hallo zusammen,
ich habe noch zwei Schönheitsfehler bei meiner WinUI 3 App:
Seht Ihr, woran es liegt?
Danke schonmal!
........................................................................................
Hier noch der XML Code meines Hauptfensters:
<?xml version="1.0" encoding="utf-8"?>
<Window
x:Class="RSToolBox.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:RSToolBox"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<!-- Main Grid to hold content and background -->
<Grid Background="Transparent" BorderBrush="Transparent" BorderThickness="0" CornerRadius="12">
<!-- Background with rounded corners -->
<Border
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
CornerRadius="12"
BorderBrush="Transparent"
BorderThickness="0">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<!-- Title bar height adjusts automatically -->
<RowDefinition Height="*"/>
<!-- NavigationView takes up the remaining space -->
</Grid.RowDefinitions>
<!-- Custom Title Bar -->
<Grid x:Name="CustomTitleBar" Background="{ThemeResource SystemControlBackgroundBaseLowBrush}" Height="32">
<TextBlock Text="RS Toolbox" VerticalAlignment="Center" Margin="12,0,0,0" FontSize="16" Foreground="White"/>
<!-- Add Minimize/Maximize/Close buttons if needed -->
</Grid>
<NavigationView
x:Name="SettingsNavView"
PaneDisplayMode="Left"
IsPaneToggleButtonVisible="False"
IsBackButtonVisible="Collapsed"
IsSettingsVisible="False"
SelectionChanged="SettingsNavView_SelectionChanged"
Grid.Row="1">
<NavigationView.MenuItems>
<NavigationViewItem Content="System Infos" Tag="SystemInfo">
<NavigationViewItem.Icon>
<FontIcon Glyph="" />
</NavigationViewItem.Icon>
</NavigationViewItem>
<NavigationViewItem Content="Common Tools" Tag="CommonTools">
<NavigationViewItem.Icon>
<FontIcon Glyph="" />
</NavigationViewItem.Icon>
</NavigationViewItem>
<NavigationViewItem Content="Outlook Fix Tools" Icon="Mail" Tag="OutlookTools" />
<NavigationViewItem Content="Collect LogFiles" Tag="LogFiles">
<NavigationViewItem.Icon>
<FontIcon Glyph="" />
</NavigationViewItem.Icon>
</NavigationViewItem>
</NavigationView.MenuItems>
<Frame x:Name="ContentFrame" />
</NavigationView>
</Grid>
</Border>
</Grid>
</Window>
Und hier das Package.appxmanifest:
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap rescap">
<Identity
Name="c45abc8e-b117-4b63-8e72-e5c1970ec11b"
Publisher="CN=RS_CENTRAL_IT, O=Rohde & Schwarz GmbH & Co. KG, L=München, S=Bayern, C=DE"
Version="1.0.13.0" />
<mp:PhoneIdentity PhoneProductId="c45abc8e-b117-4b63-8e72-e5c1970ec11b" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
<Properties>
<DisplayName>RSToolBox</DisplayName>
<PublisherDisplayName>BEIER</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
</Dependencies>
<Resources>
<Resource Language="x-generate"/>
</Resources>
<Applications>
<Application Id="App"
Executable="$targetnametoken$.exe"
EntryPoint="$targetentrypoint$">
<uap:VisualElements
DisplayName="RSToolBox"
Description="RSToolBox"
BackgroundColor="transparent"
Square150x150Logo="Assets\Square150x150Logo.png"
Square44x44Logo="Assets\Square44x44Logo.png">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" ShortName="RSToolbox">
<uap:ShowNameOnTiles>
<uap:ShowOn Tile="square150x150Logo"/>
</uap:ShowNameOnTiles>
</uap:DefaultTile >
<uap:SplashScreen Image="Assets\SplashScreen.png" />
</uap:VisualElements>
</Application>
</Applications>
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
</Package>
Danke! Alles klar, dann geht es wohl tatsächlich nur mit Win11 sauber...
Das hilft mir, nicht noch mehr Zeit in diese Thematik zu stecken.
Hallo zusammen,
ich habe ein Hauptfenster für ein WINUI 3 Projekt erstellt und dabei die Ecken abgerundet.
Trotzdem bleibt hinter dem Fenster ein rechteckiger Hintergrund sichtbar, den ich einfach nicht wegkriege, so viel ich auch schon - auch mithilfe von ChatGPT - probiert habe.
Ich hänge ein Bild an.
Und das XAML des Hauptfensters.
Im Bild sind die beiden Stellen, wo man den rechteckigen Hintergrund sieht, bepfeilt - selbiges ist natürlich auch unten sichtbar.
Hat jemand von Euch eine Idee, woran exakt das liegt und wie man diesen offenbar Hintergrund ausblendet, so dass ein sauberes abgerundetes Fenster zu sehen ist?
Mit einer WPF Anwendung hatte ich hier kein Problem, den Background des in der Hierarchie höchsten Elements auf "Transparent" zu stellen, aber mit WINUI 3 geht das nicht.
Mica etc. kann ich nicht nutzen, weil wir noch viele Win10 Clients haben - das funktioniert ja nur mit Win11.
Danke und viele Grüße
Emanuel
Ist alles vollkommen richtig.
Es gibt bestimmte Gründe, warum es momentan noch über ini läuft, aber das würde jetzt zu weit führen.
Nein, die laufen nicht parallel.
Der Service läuft vor dem Login.
Meldet sich ein User an, beendet sich der Service, und die App übernimmt.
Es liegt wirklich daran - ist die ini weg und wird vom Service angelegt, hat der User Probleme, die Datei zu ändern.
Auch manuell nicht - geht mir genau so, wenn ich über Windows Explorer das File mit Notepad versuche zu ändern, da kann ich es auch nicht speichern, außer ich rufe den Notepad als Admin auf.
Vielen Dank!
Genau, ich hatte das gestern auch danach nochmal recherchiert und mit FlushFileBuffers einen Weg gefunden, das Caching zu umgehen.
Das eigentliche Problem aber ist: Wird die Datei im System Context erzeugt (vom Service), dann ist sie von der App aus (User Context) nicht änderbar, da muss man dann wahrscheinlich Klimmzüge machen, aber da weiß ich dann, in welcher Richtung ich suchen muss. Man müsste den WritePrivateProfileString quasi als Admin ausführen...
Damit könnte das Thema geschlossen werden - ich glaub, das kann ich selber nicht.
Hallo zusammen,
Ich habe eine Applikation, die im Userkontext läuft und nach dem User Login ausgeführt wird.
Und einen damit korrespondieren Service, der vor dem Login gestartet wird, der User ist "System".
Beide korrespondieren miteinander durch die Nutzung derselben ini Datei.
Sie steht im Pfad:
c:\ProgramData\<CommonProjectFolder>\Application\<ApplicationName>\<ApplicationName>.ini
Das läuft schon seit Monaten ohne Probleme so und funktioniert.
Aktuell ist es bei mir aber so, dass beide völlig unterschiedliche Dateien aus der an sich gleichen Datei liefern.
Ich habe es momentan so eingerichtet, dass beide gleich beim Start den kompletten Inhalt der ini Datei (File.ReadAllText) in eine Log-Datei ausgeben.
Die Dateien sind völlig unterschiedlich.
Sehe ich mir die Dateien direkt als User an, stimmen die Inhalte mit dem überein, wie sie vom Service ausgegeben wird.
Die Applikation hat völlig andere Inhalte.
Lösche ich die .ini Datei und starte die Applikation, gibt er unverändert dieselben Werte aus.
Als ob die Applikation eine komplett andere Datei verwenden würde.
Für den Zugriff verwende ich die Methoden GetPrivateProfileString und WritePrivateProfileString aus der kernel32.dll.
Ich habe Richtugung Caching überlegt - ob die ini Values, die ich während der Applikation verändere, irgendwie erstmal gecacht werden, aber bisher noch nichts dazu gefunden.
Hat jemand von Euch eine Ahnung, in welcher Richtung man hier suchen könnte ?
Vielen Dank und schöne Grüße
Emil