Guten Morgen,
ja danke für den Wink mit dem Zaunpfahl. Manchmal kann es so einfach sein.
Hallo,
ich habe eine Solution mit einem WPF Projekt, einem Windows Service Projekt und einem Installer der beide Projekte packt.
Die beiden Projekte verwenden jeweils Newtonsoft.Json 13.0.3
Das WPF Projekt hat TargetFramework net7.0-windows
Der Service .NETFramework,Version=v4.8.1
Mein Problem ist, das einmal die Newtonsoft DLL mit dem Ziel net6.0 und einmal mit net45 verwendet werden soll. Beim packen des Installers wird natürlich nur die erste verwendet da jeweils gleicher Dateiname. Das hat zur Folge das mein Projekt nach der Installation zwar läuft aber der Service nicht.
Kann ich das WPF Projekt dazu bringen die .Net Framework Variante zu verwenden ?
Oder ist der Ansatz, die Abhängigkeiten in ein Unterverzeichnis zu verschieben eine Möglichkeit? (Abhängigkeiten (dlls) in Unterverzeichnis der Executable ?)
Hallo Abt,
ich möchte einen Service erstellen der Aufgaben bewältig wie Datenbankverbindungen und Netzwerkverkehr. Zusätzlich soll über eine GUI Grundeinstellungen gemacht werden können die natürlich vom Service genutzt werden.
Im aktuellen Projekt ist beides in einer Solution.
Mein Problem: Ein Service muss installiert werden bevor ich diesen über mein Programm starten kann. Um dies zu tun benötige ich aber eine exe von diesem Service und Installiere sie z.B. mit installutil. Diese wird aber nur kompiliert wenn ich ein Windows Dienst Projekt erstelle. Im Moment bekomme ich als Debug und Release Ausgabe nur die exe der Win Forms Anwendung.
Wie kann ich also diesen Dienst installieren wenn z.B. meine Form das erste mal geöffnet wird ? (Wie ich prüfe ob der Dienst bereits installiert ist weiß ich)
Deine Verlinkung werde ich mir anschauen... Danke
Hallo Community,
ich habe ein Winform Projekt erstellt. Anschließend dem Projekt ein Windows Dienst hinzugefügt.
Entweder wird der Dienst nicht oder direkt in das Programm kompiliert !? Demnach müsste der Dienst wohl als eigenes Projekt realisiert werden. Oder gibt es mittlerweile eine Möglichkeit den Service direkt im GUI Programm mitzuliefern?
Ja das ist so gewollt, die Controls sollen erstmal übereinander liegen und werden später durch Animationen herausbewegt. (So hoffe ich zumindest 😁 ) Deswegen kommt das UniformGrid auch nicht für mich in Frage.
Ja ControlGrid ist überflüssig geworden. Das ist noch ein Überbleibsel aus meinem ersten Versuch mit einem UserControl.
Für das Template funktioniert das mit ItemsControl. Für Style nicht.
Mein Frage scheint erstmal geklärt zu sein. Das ItemsControl führte nun doch zum Erfolg. Die Lösung war das festlegen des ItemsPanel - dieses ist Standard ein StackPanel.
<Style TargetType="local:MyItemsControl">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<Grid/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:MyItemsControl">
<Grid x:Name="ControlGrid">
<ItemsPresenter/>
<Ellipse x:Name="MainCircle"
VerticalAlignment="Top" HorizontalAlignment="Left"
Width="24" Height="24" Stroke="Black" Fill="Red"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Danke erstmal für eure Information.
Leider sieht es nicht besser aus bei mir. Ich hab nochmal versucht in ein Projekt die verschiedenen Controls zu implementieren.
Ein eigenes Control kommt schon in Frage da ich es später schon in verschiedenen Projekten verwenden möchte. Der Code oben in meinem Test ist etwas unspezifisch. D.h. am Ende soll im Projekt ein oder mehr Button übergeben werden so wie in meinem Bsp. die TextBlock's.
In dem Testcode ist bis jetzt noch nicht berücksichtigt das die hinzugefügten Buttons ein Style vom Control und jeweils ein umschließendes Grid mit einer Animation bekommen sollen. Das Control hat also schon ein wenig was zu tun.
(Zum vorstellen: Am Ende soll es FAST wie ein Floatbutton sein)
Eine Übersicht meiner in Frage kommenden Möglichkeiten als Anhang. Im Grunde ist von der Anordnung her das UserControl das richtige. Nur kann den Controls die später hinzugefügt werden über XAML kein Name vergeben werden. Mach ich das im Control nachträglich, finden angewendete Animationen diesen Namen allerdings nicht.
So kam ich zum CustomControl. Das ContentControl nimmt allerdings nur ein Element auf und das ItemControl listet die Elemente halt wie eine List unpraktikabel untereinander.
Hallo Bhaal,
ItemsControl hört sich erstmal logisch an.
Ich habe meine Dateien wie folgt abgeändert. Es gibt keine Fehler aber auch keine Ausgabe.
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyControl">
<Style TargetType="{x:Type local:CustomControlTest}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomControlTest}">
<Grid>
<Grid.Resources>
<local:MyData x:Key="dataList"/>
</Grid.Resources>
<Grid x:Name="ContentContainer" ><!--Children="{Binding Source={StaticResource dataList}}"-->
<ItemsControl ItemsSource="{Binding Source={StaticResource dataList}}"/>
</Grid>
<Ellipse x:Name="MainCircle"
VerticalAlignment="Top" HorizontalAlignment="Left"
Width="48" Height="48" Stroke="Black" Fill="Red"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
public class CustomControlTest : ItemsControl
{
MyData listData = new MyData();
Binding binding1 = new Binding();
static CustomControlTest()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomControlTest), new FrameworkPropertyMetadata(typeof(CustomControlTest)));
}
public CustomControlTest()
{
binding1.Source = listData;
}
}
public class MyData : ObservableCollection<object>
{
public MyData(){}
}
}
...
<local:CustomControlTest Grid.Row="1">
<TextBlock x:Name="a">Ein sinnloser Text</TextBlock>
<TextBlock x:Name="b">Noch mehr sinnloses</TextBlock>
</local:CustomControlTest>
...
Hallo Leute,
seit Tagen versuch ich mein erstes Control zu erstellen. Die letzten Tage gingen dabei drauf das mit einem UserControl zu machen. Zwischendurch waren auch erfolge dabei aber dafür neu Probleme. Das übliche halt. Am Ende kam ich zu der Erkenntnis das folgendes Konstrukt mit einem CustomControl zu machen ist. Jetzt hab ich soviel über diverse Controls und Templates gelesen das ich den Faden verloren haben.
Ziel:
<Grid>
<Grid x:Name="ContentContainer">
<ContentControl Content="{TemplateBinding Content}"/>
</Grid>
<Ellipse x:Name="MainCircle"/>
</Grid>
Das Grid ContentContainer soll diverse (mehrere) Controls aufnehmen können. Im UserControl hatte ich das lösen können, hier jedoch nicht. Desweiteren steh ich hier noch vor der Frage wie kann ich vom code behind auf ContentContainer zugreifen um die Elemente zu durchlaufen?
Oder ist ein ContentControl doch Falsch? Gelesen hatte ich noch was von ItemControl.
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyControl">
<Style TargetType="{x:Type local:CustomControlTest}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomControlTest}">
<Grid>
<Grid x:Name="ContentContainer">
<!--<ContentPresenter/>-->
<ContentControl Content="{TemplateBinding Content}"/>
</Grid>
<Ellipse x:Name="MainCircle"
VerticalAlignment="Top" HorizontalAlignment="Left"
Width="48" Height="48" Stroke="Black" Fill="Red"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
//[ContentProperty("Children")]
public class CustomControlTest : ContentControl
{
static CustomControlTest()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomControlTest), new FrameworkPropertyMetadata(typeof(CustomControlTest)));
}
public CustomControlTest()
{
//Children = ContentContainer.Children;
}
}
Hi Leute,
Ich habe ein Usercontrol erstellt in dem per Designer ein Button hinzugefügt wurde und per Code eine ListBox. Diese wird sichbar wenn auf den Button geklickt wurde.
Die Eigenschafften der ListBox lege ich in der Load-Methode des CustomControls fest. Unter anderem weise ich dort auch listBox.Paint ein Event zu.
Mein Custom Control funktioniert soweit, nur die Event Methode scheint nicht angesprungen zu werden.
Folgendes hab ich probiert:
private void CustomControl_Load(object sender, EventArgs e)
{
Debug.WriteLine("CC Load");
listBox.Height = ItemHeight * MaxItems;
listBox.BorderStyle = BorderStyle.None;
listBox.BackColor = this.BackColor;
listBox.Paint += PaintBorderEvent; // UND das: listBox.Paint += new PainEventHandler(Border);
}
private void Border(object sender, PaintEventArgs e)
{
Debug.WriteLine("CC Border");
}
void PaintBorderEvent(object sender, PaintEventArgs e)
{
Debug.WriteLine("CC PaintBorderEvent");
}
Die Debug Meldungen werden nie ausgeführt. Hab ich noch irgendwas vergessen?