• 16.04.2024, 21:03
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Anzeige der Systemzeit auf einer Übersichtsseite

Sonntag, 9. August 2020, 18:44

Hi zusammen,

ich hab mir meine Seite soweit zusammengestellt und bin soweit zufrieden. Das einzige, was mir aktuell noch fehlt, ist die Systemzeit. Klingt lapidar, aber hier meine Probleme damit:
  1. Aida64: Schreiben der Systemzeit in die WMI: Funktioniert leider nicht. Option ist in Aida aktiviert, aber in der Daten-Schnellansicht kann der AQ Service die Info nicht auslesen. Neustart des Systems hilft nichts.
  2. Selber basteln über die Datenquelle Time: Recht umständlich und führende "0" bei "08:02" werden nicht angezeigt.
  3. XAML selbst kann das wohl auch nicht so einfach, hab da jetzt aber auch noch nicht so intensiv geschaut.

Habt ihr noch eine Idee?
Danke!

Montag, 10. August 2020, 17:40

Mit XAML kannst Du in jedem Fall die Zahlen aus dem Time Objekt richtig formatieren:

http://hinzberg.de/wpf/wpf/xamlstring.html

Montag, 10. August 2020, 19:14

Hi Stephan,
danke für den Hinweis. Habs mir mal angeschaut und hab den "0" Placeholder für StringFormat gefunden.
<TextBlock.Text>
<MultiBinding Converter="{StaticResource UnitConverter}" ConverterParameter="0" StringFormat=":{0:00}">
<Binding ElementName="this" Path="DataContext.Data"/>
<Binding ElementName="this" Path="DataContext.Data.v"/>
</MultiBinding>
</TextBlock.Text>
Laut der Beschreibung (soweit ich sie verstanden habe) sollte der Placeholder eigentlich die Lösung sein, aber es funktioniert nicht.
Hab ich hier her:
https://docs.microsoft.com/en-us/dotnet/…rectedfrom=MSDN

Mittwoch, 12. August 2020, 09:38

Stephan? :)

Mittwoch, 12. August 2020, 09:59

das ist erst mal so falsch.

Quellcode

1
<MultiBinding Converter="{StaticResource UnitConverter}" ConverterParameter="0" StringFormat=":{0:00}">


das ist ein einfaches Binding. Die Kurzversion ist, man kann aktuell KEINE Zeit im XAML auf ein UI Objekt binden. Es fehlt ein Update Trigger. Das müssen wir für diesen speziellen fall implementieren.
Ob, wann und wie genau das passieren wird kann ich nicht sagen.

So kann man eine zahl mit fürender null formatieren wenn diese einstellig ist und man eine zweistellige ausgabe benötigt

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<UserControl
    x:Name="this"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
        <TextBlock
            Text="{Binding ElementName=this, Path=DataContext.Value, StringFormat={}{0:00}}"
            Foreground="White"
            FontSize="32"
            HorizontalAlignment="Center"
            VerticalAlignment="Center"  />
    </Grid>
</UserControl>


ohne text vor der zahl:

Quellcode

1
Text="{Binding ElementName=this, Path=DataContext.Value, StringFormat={}{0:00}}"

mit text:

Quellcode

1
Text="{Binding ElementName=this, Path=DataContext.Value, StringFormat=Test: {0:00}}"

Mittwoch, 12. August 2020, 11:35

Update

Donnerstag, 13. August 2020, 23:20

Hi Sebastian,

ok, danke für die Antwort, ich spiele damit mal noch etwas herum.
EDIT: Habs hinbekommen, hat funktioniert mit deinen Tipps, die Minuten haben jetzt ne führende 0 und das Format passt. :)


Es wäre ja auch eine Alternative, wenn die Variante mit Aida64 funktionieren würde. Aber leider scheint der AC Service die Uhrzeit nicht richtig aus der WMI lesen zu können. Könntet ihr da mal nachschauen?

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »-Vulture-« (14. August 2020, 07:34)

Freitag, 14. August 2020, 11:10

Unsere Dantestruktur lässt derzeit keine Strings als Wert zu - brauchen wir einfach sonst nirgends. Vielleicht bauen wir da mal etwas ein, aktuell ist das aber nicht geplant.

Samstag, 15. August 2020, 12:48

Ok, alles klar. Wie gesagt, mit der Variante oben kann man sich die Uhr ja zusammenbasteln, funktioniert einwandfrei. Danke!