Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von ByteDevil
Thema: Blazor Clientside zugriff auf lokales Verzeichnis über URL
Am im Forum: Web-Technologien

Vielen Dank Abt,

das ist ein echter Jammer Könnte man nicht versuchen 3 echte Routen manuell zu basteln, die bei einem GET dann einen Status 200 und als Content diese Dateien ausspucken? Leider fehlen mir hier etwas die Kenntnisse und auch Google hat mich nicht sehr weit gebracht. Unter ASP würde ich jetzt halt einfach 3 Controller hinzufügen...

Thema: Blazor Clientside zugriff auf lokales Verzeichnis über URL
Am im Forum: Web-Technologien

Hi,

ich baue gerade eine Blazor-Anwendung die Clientside funktionieren soll (Web assembly). Darin kann man eine Zip-Datei angeben die dann ausgepackt und deren Inhalt ins Root-Verzeichnis gepackt wird:


MemoryStream ms ...
using (var zipArchive = new ZipArchive(ms))
    zipArchive.ExtractToDirectory(Directory.GetCurrentDirectory());

Führe ich folgendes aus:


var files = Directory.GetFileSystemEntries(Directory.GetCurrentDirectory());

... sehe ich das die Dateien dort liegen. Nun muss ich zwingend and diese Dateien über die URL kommen können. Das verlangt leider eine JS-Komponente die von einem Drittanbieter ist. Wie mache ich eine Route die diese Dateien exponiert? Die Dateien heißen immer gleich und es sind immer 3 Stück.

Thema: Grid - Feste Row Height wird ignoriert
Am im Forum: GUI: WPF und XAML

@Abt: Ja, es sind DIP's soweit ich weiß. Nennen wir es "Größeneinheiten"^^ Auf dem Screenshot ist aber zu sehen, dass die mittlere Row 3 mal so hoch ist wie die anderen beiden welche angeblich 19 Größeneinheiten hoch sind.

@Th69: Danke! MaxHeight hilft tatsächlich...dachte die zu setzen wäre sinnlos wenn ich doch einen festen Wert angebe.

Thema: Grid - Feste Row Height wird ignoriert
Am im Forum: GUI: WPF und XAML

Hi,

ich habe ein seltsames Problem. Bitte fügt mal folgenden Code in ein neues WPF-Fenster ein:


<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="8"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="8"/>
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <TextBox Text="1234" Grid.Row="0" Grid.Column="0"/>
    <Border Grid.Row="1" Grid.Column="0" Background="Aqua"/> <!--Nur zur Visualisierung wie groß Row 1 ist-->
    <TextBox Text="1234" Grid.Row="2" Grid.Column="0"/>
    <Button Grid.Row="0" Grid.RowSpan="3" Grid.Column="2" Padding="0" Width="{Binding RelativeSource={RelativeSource Self}, Path=ActualHeight}" VerticalAlignment="Stretch">
        <Border Background="Red" VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
            <StackPanel>
                <TextBlock Text="1234231312123123"/>
                <TextBlock Text="1234231312123123"/>
                <TextBlock Text="1234231312123123"/>
            </StackPanel>
        </Border>
    </Button>
</Grid>
Im Anhang ist ein Screenshot wie es bei mir aussieht. Bitte auch die Maßangaben der Rows auf der linken Seite beachten^^

Ich möchte die zwei TextBoxen in einem festen Abstand von 8 Pixeln übereinander haben. Rechts daneben soll ein quadratischer Button in einem Abstand von ebenfalls 8 Pixeln sein, dessen Höhe gleich dem beider Textboxen zusammen + deren Abstand ist. Nun wird aber die mittlere Row weit über 8 Pixeln auseinander gezogen...kann mir das wer erklären? Entferne ich den Inhalt des Buttons, ist es korrekt.

Thema: ResourceDictionary von Assembly die nicht am selben Ort liegt
Am im Forum: GUI: WPF und XAML

Ich möchte gern allen die das gleich Problem haben viel Kopfschmerzen ersparen. Anstatt der WPFApp Referenzen auf das Projekt zu geben, erstellt das Projekt auf das ihr verweisen wollt und fügt eine Referenz auf die DLL hinzu...nichts weiter. So geht es...

Thema: ControlTemplate: Fill-Property an TargetType binden?
Am im Forum: GUI: WPF und XAML

Korrekt. Brush != Color

Ein Brush kann vieles sein... zB ein GradientBrush der einen Farbverlauf darstellt.

Thema: ControlTemplate: Fill-Property an TargetType binden?
Am im Forum: GUI: WPF und XAML

Magst du mal mehr code posten? Hab es eben ausprobiert und es funktioniert bei mir genau so:

<Button Width="100" Height="20" Background="Red">
    <Button.Template>
        <ControlTemplate TargetType="{x:Type Button}">
            <Grid>
                <Rectangle Fill="{TemplateBinding Background}"/>
            </Grid>
        </ControlTemplate>
    </Button.Template>
</Button>

Bzw auch so:

<Window>
....
    <Grid>
        <Grid.Resources>
            <ControlTemplate x:Key="myBtn" TargetType="{x:Type Button}">
                <Grid>
                    <Rectangle Fill="{TemplateBinding Background}"/>
                </Grid>
            </ControlTemplate>
        </Grid.Resources>

        <Button Width="100" Height="20" Template="{StaticResource myBtn}"
                Background="Red"/>
    </Grid>
</Window>

Thema: ControlTemplate: Fill-Property an TargetType binden?
Am im Forum: GUI: WPF und XAML

<Grid>
    <Rectangle x:Name="btnForm" Fill="{TemplateBinding Background}"/>
</Grid>

sollte schon helfen, denke ich.

Thema: ResourceDictionary von Assembly die nicht am selben Ort liegt
Am im Forum: GUI: WPF und XAML

Hi,

ich habe eine Klassenbibliothek an einem bestimmten Ort...sagen wir
C:\Projects\WpfThemes.csproj
Darin liegt ein ResourceDictionary mit diversen styles in einem Unterordner:
C:\Projects\WpfThemes\Styles\StylesRS.xaml

Nun habe ich eine neue Wpf Application an einem anderen Ort. Sagen wir
C:\Projects\MeineWpfApp\MeineWpfApp.csproj

Jetzt möchte ich in in der App.xaml von MeineWpfApp StylesRS.xaml einbinden. Ich habe WpfThemes der Projektmappe hinzugefügt in der auch MeineWpfApp liegt. MeineWpfApp hat auch eine Referenz auf WpfThemes.

Im Netz finde ich immer diese Lösung:

pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml

Also in meinem Fall:
pack://application:,,,/WpfThemes;component/Styles/StylesRS.xaml

Aber dann kriege ich eine XamlParseException mit der Inner Exception:
IOException: Die Ressource "styles/stylesrs.xaml" kann nicht gefunden werden.

Alles ist .Net5

Kann mir jemand sagen was ich falsch mache?

Thema: Wie kann ich StaticResourcen zur Laufzeit aktualisieren?
Am im Forum: GUI: WPF und XAML

Vielen Dank für den Tipp. Ich stelle meine Nachforschungen aber nun ein. Wir haben aus anderen Gründen nun von .Net Framework 4.7 auf 4.8 migriert. Hier ist das Problem nicht mehr vorhanden. Das verwenden von DynamicResource hat keinen spürbaren Einfluss mehr. Offenbar hat MS da nochmal was verbessert.

Thema: Wie kann ich StaticResourcen zur Laufzeit aktualisieren?
Am im Forum: GUI: WPF und XAML

Hallo,

der Titel klingt etwas komisch, ich weiß. Ich habe eine relativ große Anwendung die Verschiedene Themes unterstützt. Es gibt ein ResourceDictionary das sämtliche Styles und Templates beinhaltet. Dieses bindet dann ein weiteres ResourceDictionary in sich ein, wo die Farbcodes hinterlegt sind. Davon gibt es halt für jedes Theme eines. Möchte ich das Theme ändern, erzeuge ich das ResourceDictionary mit den Styles und Templates und packe dann das mit den gewünschten Farbcodes rein und weise es den Window.Resources zu. Möchte ich nun auf Farbwerte von aussen zugreifen, mache ich das mit DynamicResource, weil ich sonst die falsche Farbe kriege nachdem sich das Theme geändert hat.
Das funktioniert auch gut, nur habe ich jetzt ein solches DynamicResource in einem DataTemplate einer ListBox verwendet. Hier filtere ich die Items die angezeigt werden sollen mit einer Textbox in Echtzeit. Das ist unerträglich langsam wenn ich DynamicResource verwende...ersetze ich es durch ein StaticResource, funktioniert es tadellos.

Nun meine Frage: Im Moment wird jedes mal ein lookup nach diesem Farbwert vorgenommen, weil WPF ja davon ausgehen muss, dass sich diese DynamicResource jeder Zeit geändert haben kann. Tatsächlich möchte ich lieber StaticResource nutzen und WPF an einer einzigen Stelle sagen "Ruf mal bitte alle StaticResources neu ab" weil es sich nur ganz selten ändert. Geht das irgendwie? Wenn ich das nicht hinkriege, muss ich wohl oder übel die Farbe in meinem ViewModel für diesen speziellen Fall einmal abrufen und dann binden...ungern.

Thema: Binding an DependencyProperty in Template Trigger
Am im Forum: GUI: WPF und XAML

Hi,

Ich möchte einen neuen Button basteln, der ein paar mehr Anpassungsmöglichkeiten bietet als der Normale, ohne das man jedes mal ein neues Template machen muss. Daher habe ich den Button abgeleitet und möchte nun einen Impliziten Style mit einem Template machen. Hier habe ich das default-Template vom normalen Button genommen zwecks Übersichtlichkeit etwas beschnitten.

Ich habe eine neue DP eingebaut, die den Brush für den Foreground beinhaltet, wenn IsEnabled == false gesetzt wird.

ich habe hier mal ein Minimalbeispiel, welches mein Problem reproduziert:

MyButton Klasse:

public class MyButton : Button
    {
        public static readonly DependencyProperty DisabledForegroundProperty = DependencyProperty.Register(
            nameof(DisabledForeground), typeof(Brush), typeof(MyButton), new PropertyMetadata(Brushes.Gray));
        public Brush DisabledForeground
        {
            get => (Brush) GetValue(DisabledForegroundProperty);
            set => SetValue(DisabledForegroundProperty, value);
        }
    }

Style/Template:
<Style TargetType="{x:Type local:MyButton}">
            <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
            <Setter Property="Background" Value="#FFDDDDDD"/>
            <Setter Property="BorderBrush" Value="#FF707070"/>
            <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
            <Setter Property="BorderThickness" Value="1"/>
            <Setter Property="HorizontalContentAlignment" Value="Center"/>
            <Setter Property="VerticalContentAlignment" Value="Center"/>
            <Setter Property="DisabledForeground" Value="Red"/>
            <Setter Property="Padding" Value="1"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type local:MyButton}">
                        <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
                            <ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsEnabled" Value="false">
                                <Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=DisabledForeground}"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

Das funktioniert nicht. Die Schriftfarbe ist dann immer schwarz.

Ändere ich den Trigger zu:

<Trigger Property="IsEnabled" Value="false">
      <Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=DisabledForeground}"/>
</Trigger>

...geht es, solange der Button Content tatsächlich nur ein String ist. Habe ich da dann zb sowas hier drin:
<local:MyButton x:Name="TestButton" IsEnabled="False">
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="123"/>
                    <Rectangle Width="16" Fill="{Binding ElementName=TestButton, Path=Foreground}"/>
                </StackPanel>
            </local:MyButton>

... funktioniert es nicht, weil ich in dem Trigger den Foreground vom Button selbst ja nie ändere...

Ist etwas anderes im Button Content, was sich am Foreground Binden soll, wird es nicht gefärbt.

Hat jemand eine Ahnung warum
<Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=DisabledForeground}"/>

...nicht funktioniert? Ersetze ich das Binding durch eine Konstante, geht es...in der Ausgabe sind keine Binding-Errors zu sehen.

Thema: Kann man für Dark/Light Mode ControlTemplate und Style in verschiedene ResourceDictionaries legen?
Am im Forum: GUI: WPF und XAML

Update: Entschuldigt bitte...es funktioniert ganz genauso wie ich es beschrieben habe. Es war ein Fehler im Template selbst, der sich da reingeschummelt hat. Also kann man so machen wie ich, falls das jemandem weiterhilft. Danke :)

Thema: Kann man für Dark/Light Mode ControlTemplate und Style in verschiedene ResourceDictionaries legen?
Am im Forum: GUI: WPF und XAML

@witte Hi und danke für die Antwort :) Mhhh 3rd Party-Libs würde ich da gern wenn möglich vermeiden. Das muss doch mit WPF-Boardmitteln möglich sein, oder? Aber ich behalte den Tipp im Hinterkopf.

Thema: Kann man für Dark/Light Mode ControlTemplate und Style in verschiedene ResourceDictionaries legen?
Am im Forum: GUI: WPF und XAML

Hi,

folgendes Szenario: In einer größeren Solution die aus vielen Projekten besteht (C++ code und UI, Windows Forms UI und nun auch WPF) soll es nun möglich sein, bei den neuen Programmteilen welche in WPF umgesetzt sind, zur Laufzeit zwischen einem Dark- und einem Light-Mode umzuschalten. Nun überlege ich gerade wie man das Ganze strukturieren kann, damit es später möglichst einfach wird die controls zu stylen und zu nutzen...hier kommen Standard WPF-Controls zum einsatz, sowie UserControls und CustomControls.

Meine Idee war:

Ich definiere von jedem Control zwei Styles (Light und Dark) und (wenn nötig) ein ControlTemplate, da das Template ja immer gleich sein soll. Sowohl das Template als auch jeder Style soll in ein eigenes ResourceDictionary... Das mit den Templates wird von jedem der Theme-ResourceDictionaries eingebunden und eines der beiden Themes wird dann von dem Window eingebunden. So wirken sich Änderungen an einem Template auf beide Themes aus.

Versuche in nun folgendes:

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:TestProject">
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="ControlTemplates.xaml"/>
    </ResourceDictionary.MergedDictionaries>

    <Style TargetType="{x:Type local:MyButton}">
        <Setter Property="Background" Value="#494949"/>
        <Setter Property="Foreground" Value="#DEDEDE"/>
        <Setter Property="Template" Value="{DynamicResource MyButtonTemplate}"/>
    </Style>
</ResourceDictionary>

(ControlTemplates.xaml enthält erstmal nur ein ControlTemplate mit dem Key "MyButtonTemplate" mit dem TargetType "MyButton". MyButton ist ein CustomControl welches von Button erbt. Musste einige zusätzliche Properties einbauen)

und binde dieses ResourceDictionary nun in meine Window.Resources ein, bekomme ich folgende Exception direkt beim Start:
Fehler
System.Windows.Markup.XamlParseException: "Zeilennummer "17" und Zeilenposition "48" von "Beim Festlegen der Eigenschaft "System.Windows.Setter.Value" wurde eine Ausnahme ausgelöst."."

Innere Ausnahme:
ArgumentException: Bei dem Ausdruckstyp handelt es sich nicht um einen gültigen Style-Wert.

Das Problem scheint beim Setter des Templates zu liegen. Kommentiere ich das aus, kracht es nicht mehr...natürlich ist dann von dem Control nichts zu sehen, weil kein Template da ist.

Compiliert prima und IntelliSense bzw. Resharper meckert auch nirgends.
Packe ich das Template direkt in den Setter und definiere es somit in dem Style, klappt alles ganz prima. Auch das umschalten zur Laufzeit. Dann habe ich das Template aber in jedem Theme einmal drin stehen und das obwohl es immer identisch ist. Das heißt ich muss immer beide anpassen wenn ich was ändere und es bläht die beiden Themes sehr auf. Das wollte ich so nur machen, falls es tatsächlich mal den Fall gibt, dass das Template sich in beiden Themes unterscheiden soll.

Ist das was ich da vor habe überhaupt möglich? Wenn ja was mache ich falsch?

Habe diesen oder einen ähnlichen Ansatz noch nirgends im Netz entdeckt.

Thema: Wie kann ich in einem PropertyGrid Punkt statt Komma für double verwenden?
Am im Forum: GUI: Windows-Forms

Interessante Idee, doch das wird wohl nicht weniger Aufwand als den TypeConverter an jede Property zu schrauben. Auch ist es ja nicht nur der Aufwand...so faul bin ich nun auch wieder nicht :D Nur arbeite ich da nicht allein dran und die Wahrscheinlichkeit das jemand das dann nicht tut wenn eine Weitere Klasse dazu kommt ist recht hoch. Ich bräuchte also wirklich eine Möglichkeit das PropertyGrid selbst anzupassen... vielleicht kann man das Teil ableiten und irgendwas überschreiben? Das Teil muss ja irgendeinen Standard-TypeConverter oder so nutzen um double-Werte anzuzeigen... kann man das irgendwie abfangen?

Bin leider auch nicht so ganz fit was Windows Forms angeht...arbeite sonst nur mit WPF.

Thema: Wie kann ich in einem PropertyGrid Punkt statt Komma für double verwenden?
Am im Forum: GUI: Windows-Forms

Hi,

ich muss eine Änderungsanforderung umsetzen. Es soll in einem PropertyGrid, wo unter anderem double Werte eingegeben werden können, ein Punkt statt einem Komma verwendet werden. Jetzt kenne ich zwei Möglichkeiten das umzusetzen: Die ThreadCulture ändern kommt schonmal nicht in Frage, weil das würde ja auch alles andere betreffen. Und sonst müsste man für jede Klasse und deren double-properties die man darin anzeigen möchte einen TypeConverter als Attribut vergeben, oder? Das wäre auch nicht so toll, da hier viele - und ich meine echt viele Klassen dran hängen.
Kennt ihr einen Weg wie ich ein PropertyGrid dazu kriege einfach einen Punkt statt ein Komma zu verwenden?

Thema: MultiBinding mit Value Conversion
Am im Forum: GUI: WPF und XAML

@witte ja schon, allerdings würde ich ungern nur wegen dieser einen Stelle eine neue Property machen, die ich sonst nirgends bräuchte. Das summiert sich halt von Fall zu Fall.

@dannoe Perfekt! An einen MultiDataTrigger in einem Style hab ich nicht gedacht. Das klappt! Danke

Thema: MultiBinding mit Value Conversion
Am im Forum: GUI: WPF und XAML

Hi,

ich habe gerade mal wieder eine solche Situation:

<ListBox Grid.Column="2" Grid.Row="1" Margin="0,3,0,0">
    <ListBox.Visibility>
        <MultiBinding Converter="{StaticResource BoolTrueForAllToBoolMultiValueConverter}">
            <Binding Path="PasteSweepPaths"/>
            <Binding Path="ChosenDrawing" Converter="{StaticResource NotNullToBoolConverter}"/>
            <Binding Path="ChosenDrawing.HasSimulationSweepPaths"/>
        </MultiBinding>
    </ListBox.Visibility>
</ListBox>

Wird so natürlich nicht funktionieren, da ich aus dem bool eine Visibility machen muss. Nur wie könnte ich das an dieser Stelle tun? Bei einem einfachen Binding würde ich einen ValueConverter nehmen, der mir aus einem False ein Visibility.Hidde bzw. Collapsed machen würde. Ich kann ja leider keine MultiBindings verschachteln...

Wie kann ich nur mit XAML die Listbox auf Visibility.Visible setzen, wenn in meinem ViewModel PasteSweepPaths == true, ChosenDrawing != null und ChosenDrawing.HasSimulationSweepPaths == true ist und sonst auf Collapsed?

Thema: Text auf Progressbar - Foreground an Progress Value anpassen
Am im Forum: GUI: WPF und XAML

Danke euch vielmals :) Das mit dem Shader wirkt etwas Hacky^^ Ich würde es gern zuerst mit der Opacity Mask versuchen. Allerdings kann ich mir das nicht so ganz vorstellen. Mit einer Opacity Mask kann ich doch regionen durchsichtig machen, oder?

Wenn ich dich richtig verstehe, schlägst du zwei TextBlöcke vor, die den selben Text haben und genau übereinander liegen. Einer hat weiße Schrift, der andere schwarze und dann soll ich sie irgendwie mit einer Opacity Mask sichtbar/unsichtbar machen?

Thema: Text auf Progressbar - Foreground an Progress Value anpassen
Am im Forum: GUI: WPF und XAML

Hi,

ich bastel gerade an einer WPF App (.net Core 3.1) im MVVM Pattern. Darin habe ich einen Progressbar, auf dem ich gern genauere Informationen zum Fortschritt anzeigen möchte. Das könnte ich einfach mit einem Textblock machen, der zusammen mit dem Progressbar in einem Grid liegt. Nun habe ich auch ein Theme für die ganze App geschrieben, was im Grunde auf heller Schrift auf dunklem Grund basiert. Mein Progressbar besteht aus einem Hellen Balken auf grauem Grund.

Nun möchte ich, dass der Text in Weiß angezeigt wird, wenn der Progressbar darunter grau ist und Schwarz wenn der Hintergrund Weiß ist. Das möchte ich für jeden einzelnen Buchstaben tun. Google konnte mir dabei leider nicht helfen. Habt ihr eine Idee wie ich das machen könnte?

Edit: Genau sowas hier suche ich: https://css-tricks.com/reverse-text-color-mix-blend-mode/

Thema: Wie kann ich einen aus Gimp exportierten Path mittig zentrieren?
Am im Forum: GUI: WPF und XAML

Hi,
ich habe hier einen Path den ich mit Gimp gezeichnet und Exportiert habe. Leider scheint er nicht mittig in dem Button zu sitzen. Könnt ihr mir sagen was ich hier falsch mache?


<Grid>
    <Button Background="Red" Height="32" Width="32">
        <Viewbox>
            <Path Data="M26,25C26,25 26,28 26,28 26,28 6,28 6,28 6,28 6,25 6,25 6,25 4,25 4,25 4,25 4,30 4,30 4,30 28,30 28,30 28,30 28,25 28,25 28,25 26,25 26,25z 
                    M14,4C14,4 18,4 18,4 18,4 18,23 18,23 18,23 23,20 23,20 23,20 24,22 24,22 24,22 16,27 16,27 16,27 8,22 8,22 8,22 9,20 9,20 9,20 14,23 14,23 14,23 14,4 14,4z" 
                    Fill="Black" Stroke="Black" StrokeThickness="0.1"/>
        </Viewbox>
    </Button>
</Grid>

Danke vielmals

Edit: Okay, Stretch vom Path einfach auf "Fill" setzen...warum auch immer. Danke trotzdem

Thema: Wie kann ich ein Raster in Blend einblenden?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Danke Abt,

ja aber ich hab etwas Probleme mir das vorzustellen.

Thema: Wie kann ich ein Raster in Blend einblenden?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hi,

ich möchte Path-Geometrien für eigene Buttons und ähnlichem Zeichnen. Leider kann ich keine Möglichkeit finden, wie ich eine Art Raster einschalten kann, damit ich meine Pfad-Punkte korrekt und symmetrisch zeichnen kann.
Kann mir da wer helfen?

Thema: Newtonsoft Json - Allgemeinen Konstruktor verwenden
Am im Forum: Datentechnologien

Naja, die Klasse ist gute 20 Jahre alt^^ Daran hat damals wohl noch keiner so richtig gedacht.

Okay, ich schaue mir die Doku nochmal genau an mit dem im Hinterkopf was du gesagt hast. Melde mich wenn ich Erfolg hatte.

Dankeschön

Thema: Newtonsoft Json - Allgemeinen Konstruktor verwenden
Am im Forum: Datentechnologien

Achso meinst du das. Mhhh ja das geht zwar...aber ungern. Auf diese Klasse habe ich Zugriff, aber auch die ist nicht von mir und wird in einer gigantischen Software noch an (buchstäblich) hunderten weiteren Stellen genutzt. Möchte die ungern anpacken. Deshalb habe ich mir auch den bereits erwähnten ContractResolver geschrieben um einige der Properties zu ignorieren und habe nicht alles mit


[JsonIgnore]

geschmückt.

EDIT: Kann ich nicht deine Idee mit dem Converter und meine mit dem ContractResolver verheiraten? Also einen ContractResolver der diesen einen Converter nutzt, wenn er einen Vector3d vor die Flinte bekommt?

Thema: Newtonsoft Json - Allgemeinen Konstruktor verwenden
Am im Forum: Datentechnologien

Hallo Abt,

danke für die Antwort. Nun ist mir leider nicht ganz klar, wie ich einer Klasse auf die ich keinerlei Zugriff habe mit einem Attribut versehen kann. Hilfst du mir bitte auf die Sprünge?

Thema: Newtonsoft Json - Allgemeinen Konstruktor verwenden
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: <Json>

Hi,

ich serialisiere Daten, speichere sie in einer Datenbank und hole sie bei Bedarf heraus und deserialisiere sie wieder. Dabei wird unter Anderem eine struct mit deserialisiert, welche nicht aus meiner Feder stammt. Darin enthalten sind 3 double Werte, über die ich nur über Properties komme. Diese haben leider nur einen Getter. Die Struktur verfügt über drei Konstruktoren:


Vector3d() // macht einen 0-Vektor
Vector3d(double x, double y, double z)
Vector3d(double [] xyz)

Newtonsoft.Json verwendet natürlich den Standardkonstruktor und verwirft die Werte dann halt einfach, weil sie nicht zugewiesen werden können.

So sieht der Json-String aus:

{
      "LargestElement": 0,
      "LengthSqrd": 5.0336,
      "Length": 2.2435685859808254,
      "Z": 1,
      "Y": 1.4,
      "X": 1.44
}
Ich muss Newtonsoft nun irgenwie dazu kriegen, den zweiten oder dritten Konstruktor mit den x, y und z-Werten zu nutzen.

Ich weiß, das ich das irgendwie über einen ContractResolver lösen kann. Ich nutze auch bereits einen bei der serialisation/deserialisation, wo ich spezielle Properties setze die generell ignoriert werden sollen. Nur habe ich nichts dazu gefunden, wie ich in diesen einen ContractResolver nun eine "Anleitung" für Newtonsoft hinterlegen kann, wie es diesen blöden Vector initialisieren kann. Der Vector ist von Autodesk (AutoCAD) und den muss ich leider auch nutzen.
Auch wäre es schön, wenn ich dort noch weitere dieser "Anleitungen" für andere Typen hinterlegen kann.

Hat das jemand von euch schonmal gemacht und mag mir da helfen?

Thema: Mit Checkboxen Opacity eines Controls via DependencyProperty setzen
Am im Forum: GUI: WPF und XAML

Hi,

ich möchte die Opacity von einem control abhängig von 2 unterschiedlichen DependencyProperties auf unterschiedliche Werte setzen. Das soll animiert geschehen.
Hier mal mein Versuch:


<StackPanel>
     <CheckBox x:Name="ChkBoxA" Content="A"/>
     <CheckBox x:Name="ChkBoxB" Content="B"/>
</StackPanel>
.
.
.

<ListBox>
    <ListBox.Style>
        <Style TargetType="{x:Type ListBox}">
            <Style.Triggers>
                <MultiDataTrigger>
                    <MultiDataTrigger.Conditions>
                        <Condition Binding="{Binding ElementName=ChkBoxA, Path=IsChecked}" Value="true"/>
                        <Condition Binding="{Binding ElementName=ChkBoxB, Path=IsChecked}" Value="true"/>
                    </MultiDataTrigger.Conditions>
                    <MultiDataTrigger.EnterActions>
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetProperty="Opacity" To="1.0" Duration="0:0:0.2"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </MultiDataTrigger.EnterActions>
                </MultiDataTrigger>
                <MultiDataTrigger>
                    <MultiDataTrigger.Conditions>
                        <Condition Binding="{Binding ElementName=ChkBoxA, Path=IsChecked}" Value="false"/>
                        <Condition Binding="{Binding ElementName=ChkBoxB, Path=IsChecked}" Value="false"/>
                    </MultiDataTrigger.Conditions>
                    <MultiDataTrigger.EnterActions>
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetProperty="Opacity" To="0.1" Duration="0:0:0.2"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </MultiDataTrigger.EnterActions>
                </MultiDataTrigger>
                <MultiDataTrigger>
                    <MultiDataTrigger.Conditions>
                        <Condition Binding="{Binding ElementName=ChkBoxA, Path=IsChecked}" Value="true"/>
                        <Condition Binding="{Binding ElementName=ChkBoxB, Path=IsChecked}" Value="false"/>
                    </MultiDataTrigger.Conditions>
                    <MultiDataTrigger.EnterActions>
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetProperty="Opacity" To="0.3" Duration="0:0:0.2"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </MultiDataTrigger.EnterActions>
                </MultiDataTrigger>
            </Style.Triggers>
        </Style>
    </ListBox.Style>
</ListBox>

Is jetzt eine ListBox, lässt sich aber auch mit anderen UIElementen reproduzieren. Starte ich das Programm, springt die Opacity auf 0.1 ... soweit richtig. Checke ich nun Checkbox A, geht die Opacity auf 0.3 ... auch richtig. Klicke ich beide an, passiert nichts...es bleibt auf 0.3, müsste aber auf 1.0 gehen. Was mache ich falsch?

Thema: Multiline Regex mit unbekannten Zeilenabständen
Am im Forum: Rund um die Programmierung

Hallo,

gegeben sei folgender Test-String:

irgendwas
noch mehr irgendwas
hier können beliebig viele Zeilen sein

Zahl 1 ist "2"

ganz viel irgendwas
hier können beliebig viele Zeilen sein

     Zahl 2 ist "unbekannt" und die Zeile hat n Leerzeichen am Anfang

Als Ausgabe möchte ich "2" und "unbekannt" haben.

Folgender Regex tut leider nicht was er soll:
^\s*Zahl 1 ist "(.+?)"$(?:^.*$)+?^\s*Zahl 2 ist "(.+?)"
Getestet mit regex101
Zahl 1 findet er, wenn ich den Part von Zahl 2 wegnehme.
Ich möchte nicht den Singleline mode nehmen, da sich das offenbar schlecht auf die Performance auswirkt...ist ein recht langer Quellcode einer Webseite.

Problem scheint das hier zu sein: (?:^.*$)+?
Damit möchte ich 1-n Zeilen beschreiben, in denen alles mögliche oder auch gar nichts steht. Jetzt wo ich es laut lese, wird das wohl Performance-Technisch auch nocht so toll sein und aufs gleiche raus kommen wie singleline. Kann mir hier jemand helfen? Am liebsten würde ich einfach die Zeilen-Anker ^ und $ Quantifizieren, aber das geht wohl nicht.