Laden...

Forenbeiträge von _Cashisclay Ingesamt 277 Beiträge

26.10.2017 - 14:18 Uhr

Du meintest doch nutze eine Methode die dein Bild nicht skaliert und skaliere es stattdessen zuvor selber? Das versuche ich aktuell .. Mir ist bewusst das du mir die Lösung nicht via Quelltext zureichst, allerdings sitz ich auch schon einige Tage an dem Problem und schreib in der Regel nur ins Forum, wenn ich wirklich nicht mehr weiterkomme, dementsprechend fehlen mir an solchen Punkten wahrscheinlich schon die Nerven für solche Ratespiele oder seh das offentsichtliche mittlerweile nicht mehr.

Grüße

26.10.2017 - 14:02 Uhr

Versteh jetzt nicht was an der

DrawImageUnscaled(Image,Int32,Int32)

Zeichnet das angegebene Bild in seiner ursprünglichen physischen Größe an der von einem Koordinatenpaar angegebenen Position.

Funktion dann so verkehrt sein soll?

Grüße

26.10.2017 - 13:45 Uhr

Hey LaTino,

danke für deine Antwort, du meinst wahrschein DrawImageUnscaled.

Ich guck mal wie ich das Bild auf eine A4 Seite skaliere und ob das dann besser funktioniert.

Grüße

26.10.2017 - 13:19 Uhr

Servus,

hat jemand von euch sich schon einmal ein TabControl erstellt, was unterschiedliche TabItem Styles beinhaltet?

Ich möchte gerne das mein erstes TabItem und mein letztes Tabitem sich von den normalen Tabitems unterscheiden.

Hab schon etwas gefunden, wo man via Converter rausfinden muss welches Tabitem es denn ist um dann eventuell einen anderen Style zu hinterlegen?

Wenn jemand schon Erfahrungen sammeln könnte, wäre es nett, falls er sie teilen würde 😃

Edit : Gerade auf den itemContainerStyleSelector gestoßen, sollte jemand trotzdem schon Erfahrungen haben, gerne trotzdem teilen, ich probier es mal damit

Grüße

26.10.2017 - 11:50 Uhr

Der Screenshot sieht ganz normal und auch gut aus, aber sobald ich das ganze drucken möchte, kommt folgendes verzehrtes Bild raus :

Irgendwas muss bei dein Druckereinstellungen nicht stimmen.

26.10.2017 - 10:57 Uhr

Es scheint nicht am Screenshot zu liegen sondern am Druck irgendwie verzehrt der Drucker mir das Bild

26.10.2017 - 09:56 Uhr

Hab ich aus einem alten Projekt übernommen wo ich bereits einen Screenshot mache und dem einer PDF hinzufüge um eine möglichst gute Qualität zu haben.

Hab es mal auf 96, 96 geändert, das Ergebnis ist gleich, einige Linien werden einfach nicht richtig gezogen dadurch sind Wörter nicht lesbar, daran kann es nicht liegen.. ist auch Drucker übergreifend so liegt also auch nicht am Drucker.

Drucken tu ich aktuell so :

e.Graphics.DrawImage(Image_From_Screenshot, 0, 0, e.PageBounds.Width, e.PageBounds.Height)
26.10.2017 - 09:43 Uhr

Den Titel hab ich nicht gewählt sondern Coffeebean, btw. so eine Antwort ist absolut 0 hilfreich und anscheinend hast du dir weder meine Frage noch Quelltext durchgelesen, weil du anscheinend nicht wirklich einen Plan hast um was es geht.

Und hätte ja sein können das jemand unter C# das gleiche auch schon mal probiert hat, scheint aber in deiner Welt nicht der Fall zu sein 😉

26.10.2017 - 09:28 Uhr

Niemand Erfahrungen oder eine Idee? 😕

25.10.2017 - 14:05 Uhr

Servus,

ich versuch jetzt schon seit Tagen einen Screenshot vom Bildschirm zu machen, um diesen dann auszudrucken, leider funktioniert irgendwas immer nicht.

Ich benutze die Klasse System.Drawing.Printing.PrintDocument

Ich erstelle mein Image :

            ' --- Einstellungen vom Fenster --- '

            GetWindowRect(GetActiveWindow, Rectangle)

            ' --- Bereinigung --- '

            Image_From_Screenshot = Nothing


            Dim Image As New System.Drawing.Bitmap(Rectangle.Right - Rectangle.Left, Rectangle.Bottom - Rectangle.Top)

            ' --- Screenshot --- '

            Using Graphics As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(Image)

                Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit

                Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality

                Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic

                Graphics.CopyFromScreen(New System.Drawing.Point(Rectangle.Left, Rectangle.Top), New System.Drawing.Point(0, 0), Image.Size)

            End Using

            Image.SetResolution(400, 400)

            Image.RotateFlip(System.Drawing.RotateFlipType.Rotate90FlipNone)

            ' --- Druckvorgang --- '

            Dim Print_Dialog As New System.Windows.Forms.PrintPreviewDialog

            '' --- Zuweisung --- '

            Image_From_Screenshot = Image

Und versuche dieses Image dann auszudrucken, leider stimmen entweder die Maße nicht oder wie aktuell sieht die Auflösung furchtbar aus, ich bin langsam am verzweifeln, hat jemand mit dem Thema bereits Erfahrungen sammeln können? Beim Googlen hat mir nichts weitergeholfen.

Image drucken :

            'Print_Document.DefaultPageSettings.Margins = New System.Drawing.Printing.Margins(0, 0, 0, 0)

            'Dim x As Integer = e.MarginBounds.X + (e.MarginBounds.Width - Image_From_Screenshot.Width) / 2

            'Dim y As Integer = e.MarginBounds.Y + (e.MarginBounds.Height - Image_From_Screenshot.Height) / 2

            'Dim imgRect As New System.Drawing.Rectangle(New System.Drawing.Point(0, 0), Image_From_Screenshot.Size)

            e.Graphics.DrawImage(Image_From_Screenshot, 0, 0, e.PageBounds.Width, e.PageBounds.Height) 'e.MarginBounds.Width - 100, e.MarginBounds.Height - 100

Grüße

29.06.2017 - 10:52 Uhr

Moin Sir Rufo,

aber bei der Text Geschichte hatte sich ja das Preview Event angeboten, so etwas gibt es doch beim SelectionChanged nicht.

Grüße

Edit : Pinki probier es einfach mal fix aus, ist nicht so einfach wie es klingt 😄

29.06.2017 - 09:12 Uhr

Servus Community,

kennt jemand eine Möglichkeit bzw. hat jemand schon mal versucht das SelectionChangedEvent abzubrechen?

Beispiel :

Ausgewählt A
Neue Auswahl B

Möchten Sie wirklich den Wert ändern?
Nein -> Wert wieder auf A setzen
Im Binding SelectedIndex funktioniert es leider nicht, im Event SelectionChanged scheint es auch nicht möglich sein..

Grüße!

28.06.2017 - 10:17 Uhr

Servus Sir Rufo,

ich bastel momentan noch mit dem Attached Property.. allerdings brauch ich einige Variablen aus meinem ViewModel und als ich dann ein wenig rumprobiert habe.. kam irgendwann die Frage in mir auf, warum man nicht einfach gleich das PreviewTextInput Event von der ComboBox nutzt, wäre doch wesentlich einfacher oder? 😄

Grüße

27.06.2017 - 12:03 Uhr

Okay hab es endlich hinbekommen ..

Danke für das Beispiel Sir Rufo!

Endlich ein Erfolgserlebnis nach 3 Tagen .. sorry wenn ich manchmal ein wenig seltsam geantwortet habe, aber mittlerweile hatte ich echt schlechte Laune wegen dem ganzen, ich versuch das ganze jetzt nachzuvollziehen, dann bastel ich das auf mein Projekt um und teile das Ergebnis nochmal für alle in VB.NET ..

Danke nochmal für das Beispiel.

27.06.2017 - 11:20 Uhr

Er kommt ja nicht mal in das ComboBox_TextChanged Event.. ich kann mich so oder so nicht aktuell mit dem ComboBox_PreviewTextInput Event auseinandersetzen 😮

27.06.2017 - 11:15 Uhr

Ich weiß, aber das sollte ja nicht daran stören in die Funktion zu springen und das macht er eben erst gar nicht 😕

mMn springt er nicht mal in die ComboBox_TextChanged, weil local:ComboBoxTry.TextInterception="{Binding TextInterception}" überhaupt kein Bezug hat zur Text Property

27.06.2017 - 10:56 Uhr

Denke mal im ViewModel hab ich irgendwas falsch gemacht

Public Class ComboBoxTry

    Public Interface ITextInterception

        Function ShouldChangedText(value As String, newValue As String) As Boolean

    End Interface

    Public Shared ReadOnly TextInterceptionProperty As DependencyProperty = DependencyProperty.RegisterAttached("TextInterception", GetType(ITextInterception), GetType(ComboBoxTry),
                                                                                                     New FrameworkPropertyMetadata(Nothing,
                                                                                                                                   New PropertyChangedCallback(AddressOf ComboBox_TextChanged)))

    Public Shared Sub SetTextInterception(obj As ComboBox, value As ITextInterception)

        obj.SetValue(TextInterceptionProperty, value)

    End Sub

    Public Shared Function GetTextInterception(obj As ComboBox) As ITextInterception

        Return TryCast(obj.GetValue(TextInterceptionProperty), ITextInterception)

    End Function

    Private Shared Sub ComboBox_TextChanged(d As DependencyObject, e As DependencyPropertyChangedEventArgs)

        Dim ComboBox As ComboBox = d

        If ComboBox.Text = "C" Then

            AddHandler ComboBox.PreviewTextInput, AddressOf ComboBox_PreviewTextInput

        End If

    End Sub

    Private Shared Sub ComboBox_PreviewTextInput(sender As Object, e As TextCompositionEventArgs)



    End Sub

End Class

Imports WpfApplication2.ComboBoxTry

Public Class ViewModel

    Implements System.ComponentModel.INotifyPropertyChanged

    Sub New()

        Dim TextInterception As New TextInterceptionImpl

    End Sub




    Class TextInterceptionImpl

        Implements ITextInterception

        Public Function ShouldChangedText(value As String, newValue As String) As Boolean Implements ComboBoxTry.ITextInterception.ShouldChangedText

            If value = "A" Then

                newValue = "B"

                Return True

            End If

            newValue = String.Empty

            Return False

        End Function

    End Class

    Private _TextInterception As ITextInterception

    Public Property TextInterception As ITextInterception
        Get
            Return _TextInterception
        End Get
        Set(value As ITextInterception)
            _TextInterception = value
            PropertyChange("TextInterception")
        End Set
    End Property

    Private _Lieferschein_Text

    Public Property Lieferschein_Text As String
        Get
            Return _Lieferschein_Text
        End Get
        Set(value As String)
            _Lieferschein_Text = value
            PropertyChange("Lieferschein_Text")
        End Set
    End Property


#Region "Interface"
    Private Sub PropertyChange(ByVal Name As String)
        RaiseEvent PropertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(Name))
    End Sub

    Public Event PropertyChanged(sender As Object, e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
#End Region

End Class

<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfApplication2"
    Title="MainWindow" Height="350" Width="525">
    <Grid>
        
        <ComboBox local:ComboBoxTry.TextInterception="{Binding TextInterception}" Text="{Binding Lieferschein_Text, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEditable="True"/>
        
    </Grid>
</Window>

EDIT: hab jetzt nicht versucht die Variable direkt zu beeinflussen, hab erstmal nur versucht mit Breakpoints zu gucken ob er in die Funktionen reinspringt

27.06.2017 - 10:40 Uhr

Das kannst du aber nicht 1 zu 1 so übernehmen, außerdem hab ich Codeschnipsel die mir nicht bekannt vor kamen damit schon übersetzt, wie gesagt es funktioniert ja nicht.

27.06.2017 - 10:36 Uhr

Deinen Quellcode quasi in VB.net zu übertragen, weil wenn ich eine Eingabe in der Combobox tätige er nicht mal in das TextInterception springt..

27.06.2017 - 09:50 Uhr

@Sir Rufo : Es ist kein FullQuote, habe einige deiner Zeilen gelöscht, die mMn nicht relevant waren.. In jedem Fall muss ich ja irgendwas falsch machen, weil bei mir funktioniert es nicht..

@MarsStein :

Ich habe vor den Inhalt von Text Property der ComboBox zu ändern :
Bedeutet wenn der User (Beispiel) A eintippt möchte ich daraus automatisch ein B machen.


If Not IsDBNull(DataRow.Item("Lieferschein")) Then ViewModel.Lieferschein_Text = DataRow.Item("Lieferschein")

Diese Zeile stammte aus dem PropertyChanged Event ..

Beispiel :

Select Case e.PropertyName

Case "Lieferschein_Text"

IF ViewModel.Lieferschein_Text = "A" THEN

ViewModel.Lieferschein_Text = "B"

END IF

Wie man das lösen könnte, kam ja bereits von Sir Rufo, allerdings krieg ich es in VB.NET noch nicht hin

27.06.2017 - 09:33 Uhr

Aus meiner Sicht brauch ich doch nur das um zu prüfen ob ich die Eingabe im Vorfeld verändern kann :

Hier mal eine Lösung in C#

Definition der AttachedProperty
(wer sich an der Begrifflichkeit Behavior stört, ersetze das bitte in Gedanken durch EgonKarlSeineFrauIhreGedöns)

  
using System.Windows;  
using System.Windows.Controls;  
using System.Windows.Input;  
  
namespace mc119350.WpfApp.Behavior  
{  
    public interface ITextInterception  
    {  
        bool ShouldChangeText(string value, out string newValue);  
    }  
  
    public static class ComboBoxInterceptor  
    {  
        // Using a DependencyProperty as the backing store for MyProperty.  This enables animation, styling, binding, etc...  
        public static readonly DependencyProperty TextInterceptionProperty =  
            DependencyProperty.RegisterAttached(  
                "TextInterception",  
                typeof(ITextInterception),  
                typeof(ComboBoxInterceptor),  
                new PropertyMetadata(null, TextInterceptionChanged));  
  
        public static void SetTextInterception(ComboBox obj, ITextInterception value)  
        {  
            obj.SetValue(TextInterceptionProperty, value);  
        }  
  
        public static ITextInterception GetTextInterception(ComboBox obj)  
        {  
            return obj.GetValue(TextInterceptionProperty) as ITextInterception;  
        }  
  
        static void TextInterceptionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)  
        {  
            var obj = d as ComboBox;  
            if (e.OldValue == null && e.NewValue != null)  
            {  
                obj.PreviewTextInput += ComboBox_PreviewTextInput;  
            }  
            if (e.OldValue != null && e.NewValue == null)  
            {  
                obj.PreviewTextInput -= ComboBox_PreviewTextInput;  
            }  
        }  
  
        static void ComboBox_PreviewTextInput(object sender, TextCompositionEventArgs e)  
        {  
            var obj = sender as ComboBox;  
            var interceptor = GetTextInterception(obj);  
            string newText;  
            if (interceptor.ShouldChangeText(e.Text,out newText))  
            {  
                e.Handled = true;  
                obj.Text = newText;  
            }  
        }  
  
    }  
}  
  

Hier das ViewModel

  
using GalaSoft.MvvmLight;  
using mc119350.WpfApp.Behavior;  
using System.Collections.ObjectModel;  
  
namespace mc119350.WpfApp.ViewModel  
{  
    public class MainViewModel  
    {  
        public MainViewModel()  
        {  
            TextInterception = new TextInterceptionImpl();  
        }  
  
        class TextInterceptionImpl : ITextInterception  
        {  
            public bool ShouldChangeText(string value, out string newValue)  
            {  
                if (value == "A")  
                {  
                    newValue = "B";  
                    return true;  
                }  
                newValue = string.Empty;  
                return false;  
            }  
        }  
  
        string _lieferschein_Text;  
        ITextInterception _textInterception;  
  
        public ITextInterception TextInterception  
        {  
            get => _textInterception;  
            set => Set(ref _textInterception, value);  
        }  
  
        public string Lieferschein_Text  
        {  
            get => _lieferschein_Text;  
            set => Set(ref _lieferschein_Text, value);  
        }  
  
    }  
  
}  
  

und zu guter letzt die View

  
<Window x:Class="mc119350.WpfApp.MainWindow"  
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  
        xmlns:behavior="clr-namespace:mc119350.WpfApp.Behavior"  
        xmlns:local="clr-namespace:mc119350.WpfApp"  
        mc:Ignorable="d"  
        DataContext="{Binding Source={StaticResource Locator}, Path=Main}"  
        Title="MainWindow" Height="350" Width="525">  
    <Grid>  
        <Grid.RowDefinitions>  
            <RowDefinition Height="Auto"/>  
            <RowDefinition />  
        </Grid.RowDefinitions>  
        <ComboBox Grid.Row="0"  
            behavior:ComboBoxInterceptor.TextInterception="{Binding TextInterception}"  
            Text="{Binding Lieferschein_Text,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"  
            IsEditable="True"  
            Margin="1"/>  
    </Grid>  
</Window>  
  

Und das habe ich auch versucht so in VB.net umzusetzen..

27.06.2017 - 09:30 Uhr

Möchte ich auch allerdings verändert sich in meiner TextInterception Property nichts bei dem Binding..

27.06.2017 - 09:02 Uhr

Also so richtig krieg ich es nicht hin ..

Woher soll denn TextInterception wissen wann sich der Lieferschein_Text ändert?

26.06.2017 - 14:59 Uhr

Das klingt so als wenn das Sinn macht mit dem AttachedProperty.. konnte aber bis jetzt noch keinen Erfolg verbuchen.

26.06.2017 - 13:33 Uhr

Hast du denn ein Beispiel dazu? Bzw. hast du das in der Richtung schon mal gemacht und weißt das es so funktionieren würde?

26.06.2017 - 11:23 Uhr

Hab jetzt mal die PropertyChangedCallback Funktion versucht, er setzt zwar den Wert korrekt, aber der ComboBox Inhalt verändert sich halt einfach nicht, als wenn die sich nicht aktualsieren möchte..

26.06.2017 - 07:46 Uhr

Hallo Sir Rufo!

Sorry für die späte Antwort hatte leider kaum Rechnerzugang am Wochenende.

Hier mal das ViewModel mit allen Eigenschaften die an diese ComboBox gebunden sind :



    Public Property Lieferschein As System.Data.DataTable
        Get
            Return _Lieferschein
        End Get
        Set(value As System.Data.DataTable)
            _Lieferschein = value
            PropertyChange("Lieferschein")
        End Set
    End Property

    Public Property Lieferschein_SelectedIndex As Integer
        Get
            Return _Lieferschein_SelectedIndex
        End Get
        Set(value As Integer)
            _Lieferschein_SelectedIndex = value
            PropertyChange("Lieferschein_SelectedIndex")
        End Set
    End Property

    Public Property Lieferschein_Text As String
        Get
            Return _Lieferschein_Text
        End Get
        Set(value As String)
            _Lieferschein_Text = value
            PropertyChange("Lieferschein_Text")
        End Set
    End Property


Hab jetzt mal den Code nochmal als nicht C# Code gekennzeichnet ... Sorry!

23.06.2017 - 13:45 Uhr

Ich probiere es aktuell im PropertyChanged Event an dieser Stelle :

                Case "Lieferschein_Text"

                    ViewModel.Kundennummer_Value = ViewModel.Kundennummer_Text
                    ViewModel.Lieferschein_Value = ViewModel.Lieferschein_Text

                    ' --- Bereinigung --- '

                    ViewModel.Lieferschein_Datum = ""

                    ' --- Individuelle Eingabe --- '

                    set_ComboBox_Kundennummer_Lieferschein()

                    If ViewModel.Lieferschein_Text = "A" Then

                        ViewModel.Lieferschein_Text = "Ohne"

                    End If

Im Setter hatte ich es schon versucht und eben auch noch einmal .. hatte auch nicht funktioniert.

    Public Property Lieferschein_Text As String
        Get
            Return _Lieferschein_Text
        End Get
        Set(value As String)

            If value = "A" Then

                value = "B"

            End If

            _Lieferschein_Text = value
            PropertyChange("Lieferschein_Text")
        End Set
    End Property
23.06.2017 - 13:00 Uhr

Es scheint so .. das er die Ansicht nicht ändert wenn man die Variable im PropertyChanged Event verändern möchte, wenn ich das ganze über einen extra Button steuer .. funktioniert es.

Jemand eine Idee warum?

23.06.2017 - 10:34 Uhr
                        
<ComboBox Margin="1" IsEditable="True" ItemsSource="{Binding Lieferschein, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Lieferschein" SelectedIndex="{Binding Lieferschein_SelectedIndex, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Text="{Binding Lieferschein_Text, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" IsEnabled="{Binding IsEnabled}" IsTextSearchEnabled="False" IsSynchronizedWithCurrentItem="True">

                                    <ComboBox.ItemsPanel>

                                        <ItemsPanelTemplate>

                                            <VirtualizingStackPanel VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Recycling"/>

                                        </ItemsPanelTemplate>

                                    </ComboBox.ItemsPanel>

                                </ComboBox>

 

Ich hab auch schon versucht die ItemSource zu aktualisieren (klappt auch) und den SelectedIndex auf den Eintrag zu wechseln, trotzdem bleibt in dem Fall (alles via Quellcode) der Inhalt veraltet.

Grüße

Edit : IsSynchronizedWithCurrentItem="True" hab ich gestern erst beim rumprobieren hinzugefügt.

23.06.2017 - 10:28 Uhr

Hallo inflames2k!

Ja, hab ich und er wird auch durchlaufen.

Edit: in der Property steht dann auch der neue Wert drinne, aber die ComboBox hat immer noch den alten Wert.

23.06.2017 - 10:16 Uhr

Servus in die Runde..

Eventuell kann mir jemand fix weiterhelfen ich versuche eine Combobox Eingabe zu verändern.

Beim Laden (Inhalt) der Combobox funktioniert seltsamerweise alles einwandfrei.

Beispiel :

Property im ViewModel :


    Public Property Lieferschein_Text As String
        Get
            Return _Lieferschein_Text
        End Get
        Set(value As String)
            _Lieferschein_Text = value
            PropertyChange("Lieferschein_Text")
        End Set
    End Property

Ladevorgang :


If Not IsDBNull(DataRow.Item("Lieferschein")) Then ViewModel.Lieferschein_Text = DataRow.Item("Lieferschein")

Lieferschein Inhalt wird korrekt angezeigt.

ViewModel_PropertyChanged Event :


Case "Lieferschein_Text"

                    If ViewModel.Lieferschein_Text = "A" Then

                        ViewModel.Lieferschein_Text = ""

                    End If

Funktioniert nicht der Inhalt bleibt beim A

Kann mir jemand weiterhelfen?

Grüße

15.02.2017 - 08:50 Uhr

Ist ein Lösungsvorschlag für sein Problem, außerdem hat das was auch mit eigener Pflege zu tun, ist mir in 3 Jahren noch nie um die Ohren geflogen, es ist halt statisch, man muss es im Hinterkopf haben.

Grüße

15.02.2017 - 08:47 Uhr

Konnte damit schon jemand Erfahrungen sammeln?

Grüße

10.02.2017 - 14:31 Uhr

Servus,

wenn es dir egal ist ob dein Image Bild1 heißt oder dein ContextMenu Bild1 dann könntest du es auch so machen :

Dim Source AS FrameworkElement = TryCast(e.Source, FrameworkElement)

Dim ContextMenu AS ContextMenu = CType(Source.Parent, ContextMenu)

ContextMenu.Name

Grüße

10.02.2017 - 13:54 Uhr

Servus,

wenn du es so löst warum willst du dann vom MenuItem überhaupt den Namen haben?
Du landest doch im passendem Event, da weißt du doch schon von welchem MenuItem du kommst und kannst den Namen einfach fest hinterlegen.

Grüße

10.02.2017 - 13:50 Uhr

Hallo,

entweder du bindest die Bilder ins Projekt ein (1 roter Rahmen) oder du machst einen Verweis auf die Datei via Pfad (2 roter Rahmen).

Grüße

10.02.2017 - 13:44 Uhr

Hallo Community,

ich hab mal eine Frage, existiert eine einfache Lösung um über den Xaml Code die Größe der Spalten anzupassen wenn die Breite bereits bei Datenbefüllung festgelegt wurde?

Folgende Situation :

Ich fülle mein DataGrid mit Daten (50 Datensätze) darunter einige Spalten die sich auf die breiteste Spalte festlegen. Wenn man über meinen eigenen Kopfbereich nun Filteranpassungen tätigt, werden die Datensätze auf diese Anzahl dann begrenzt, allerdings bleiben die Spalten bei der Größe die vorher festgelegt wurde, was ein wenig Platz verschwendent ist.

Hat jemand eine Idee?

Grüße

09.11.2016 - 11:02 Uhr

Hallo :

Der Teil knallt :

                        Try
                            Dim Image As System.Drawing.Image = System.Drawing.Icon.ExtractAssociatedIcon(FileInfo.FullName).ToBitmap
                            Image.Save(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp\" & Benutzer & "\" & FileInfo.Name & "")

                            DataRow.Item("Icon") = ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp\" & Benutzer & "\" & FileInfo.Name
                        Catch ex As Exception

                        End Try
09.11.2016 - 10:10 Uhr

Sorry.

Also der Benutzer wählt eine Datei von seinem Computer aus, diese wird dann dem oben angegebenen Pfad hinterlegt, danach wird die mit Name und Icon in einer Tabelle angezeigt und kann ggf. aufgerufen werden.

Dim Benutzer As String = System.Environment.UserName

        Try

            If Not System.IO.Directory.Exists(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp\" & Benutzer & "") Then

                ' --- Wenn der aktuelle Benutzer keinen Ordner besitzt, wird dieser nachträglich angelegt --- '

                If Not System.IO.Directory.Exists(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons") Then System.IO.Directory.CreateDirectory(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons")
                If Not System.IO.Directory.Exists(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanamgenetsystem\Icons\Temp") Then System.IO.Directory.CreateDirectory(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp")

                System.IO.Directory.CreateDirectory(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp\" & Benutzer & "")

            End If

            If Not System.IO.Directory.Exists(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files\Temp\" & Benutzer & "") Then

                ' --- Wenn der aktuelle Benutzer keinen Ordner besitzt, wird dieser nachträglich angelegt --- '

                If Not System.IO.Directory.Exists(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files") Then System.IO.Directory.CreateDirectory(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files")
                If Not System.IO.Directory.Exists(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanamgenetsystem\Files\Temp") Then System.IO.Directory.CreateDirectory(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files\Temp")

                System.IO.Directory.CreateDirectory(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files\Temp\" & Benutzer & "")

            End If

        Catch ex As Exception
            Fehlerbehandlung = New Fehlerbehandlung()
            Fehlerbehandlung.Fehlermeldung = ex
            Fehlerbehandlung.ShowDialog()
        End Try

        Try

            Using OpenFileDialog As New System.Windows.Forms.OpenFileDialog

                If OpenFileDialog.ShowDialog = Windows.Forms.DialogResult.OK Then

                    ' --- interne Variablen Deklaration --- '

                    Dim FileInfo As New System.IO.FileInfo(OpenFileDialog.FileName)

                    Dim _Info As System.IO.FileInfo

                    ' --- Dient der Prüfung ob die Datei bereits in der Tabelle hinterlegt ist --- '

                    Dim eFile As Boolean = False

                    ' --- Prüfung ob die Datei bereits im Verzeichnis hinterlegt ist --- '

                    For Each File As String In My.Computer.FileSystem.GetFiles(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files\Temp\" & Benutzer & "\")

                        Dim Info As New System.IO.FileInfo(File)

                        If FileInfo.Name = Info.Name Then

                            eFile = True

                            _Info = Info

                            Exit For

                        End If

                    Next

                    If eFile = True Then

                        ' --- Die Datei exisitert bereits unter \\192.168.88.48\Daten\IT-Tools\Beschwerdemanagementsystem\Files --- '

                        FileInfo.CopyTo(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files\Temp\" & Benutzer & "\" & _Info.Name & "", True)

                        eFile = False

                        ' --- Prüfe ob die Datei bereits in der Liste existiert --- '

                        For Each File As System.Data.DataRow In ViewModel.Dateiname.Rows

                            If File.Item("Name") = FileInfo.Name Then

                                eFile = True

                                Exit For

                            End If

                        Next

                        If eFile = False Then

                            Dim DataRow As System.Data.DataRow = ViewModel.Dateiname.NewRow

                            DataRow.Item("Dateiname") = Replace(FileInfo.FullName, FileInfo.Name, "")

                            DataRow.Item("Name") = FileInfo.Name

                            DataRow.Item("Icon") = ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp\" & Benutzer & "\" & FileInfo.Name

                            ViewModel.Dateiname.Rows.Add(DataRow)

                        End If


                    Else

                        ' --- Die Datei existiert noch nicht unter \\192.168.88.48\Daten\IT-Tools\Beschwerdemanagementsystem\Files --- '

                        FileInfo.CopyTo(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files\Temp\" & Benutzer & "\" & FileInfo.Name & "")

                        FileInfo = New System.IO.FileInfo(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Files\Temp\" & Benutzer & "\" & FileInfo.Name & "")

                        Dim DataRow As System.Data.DataRow = ViewModel.Dateiname.NewRow

                        DataRow.Item("Dateiname") = Replace(FileInfo.FullName, FileInfo.Name, "")

                        DataRow.Item("Name") = FileInfo.Name

                        Dim Image As System.Drawing.Image = System.Drawing.Icon.ExtractAssociatedIcon(FileInfo.FullName).ToBitmap
                        Image.Save(ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp\" & Benutzer & "\" & FileInfo.Name & "")

                        DataRow.Item("Icon") = ConfigLoader.DataPath & "\IT-Tools\Beschwerdemanagementsystem\Icons\Temp\" & Benutzer & "\" & FileInfo.Name

                        ViewModel.Dateiname.Rows.Add(DataRow)

                    End If

                End If

            End Using

            If ViewModel.StatusID = 1 Or ViewModel.StatusID = 2 Then

                If check_Pflichtfelder() Then If ViewModel.Einordnung.Rows(ViewModel.Einordnung_SelectedIndex).Item("Einordnung") <> "Ohne Folge" Then ViewModel.StatusID = 2

            End If

        Catch ex As Exception
            Fehlerbehandlung = New Fehlerbehandlung()
            Fehlerbehandlung.Fehlermeldung = ex
            Fehlerbehandlung.ShowDialog()
        End Try
09.11.2016 - 09:56 Uhr

Aber wie kann er dann die Datei für den Pfad hinterlegen?

09.11.2016 - 08:09 Uhr

Hat jemand damit schon Erfahrungen gemacht? Bei mir und auf der Testumgebung funktioniert es, beim Anwender nicht, die Datei wurde auch für den angegebenen Pfad hinterlegt.

Grüße

02.09.2016 - 11:14 Uhr

Das wird sie, das ist über das ViewModel geregelt.

02.09.2016 - 10:24 Uhr

Tut mir Leid hab das ganze auch ein wenig knapp beschrieben.



' --- ViewModel (Auftragsabwicklung) - Befüllung mit Daten zu dem vorhandenen Mandanten --- '
            ViewModel.Auftragsabwicklung = processingAssignments(Datenbank.return_Auftragsabwicklung_Aufträge(ViewModel.MandantCbIndex)).DefaultView

            ViewModel.Auftragsabwicklung.Sort = "Geprüft DESC, Datum ASC"

            For Each DataRow As System.Data.DataRow In ViewModel.Auftragsabwicklung.ToTable.Rows

                If Not IsDBNull(DataRow.Item("Geprüft")) AndAlso DataRow.Item("Geprüft") = "2" AndAlso (IsDBNull(DataRow.Item("_FEHLERKENNUNGAUFTRAGSABWICKLUNG")) OrElse DataRow.Item("_FEHLERKENNUNGAUFTRAGSABWICKLUNG").ToString = "0") Then

                    ViewModel.AutomaticallyIsEnabled = True

                    Exit For

                End If

            Next

            'Datenbank.insert_Auftragsabwicklungstool(Suchvorgang, "processingAssignments", ViewModel.MandantCbIndex, "Aufträge wurden erfolgreich geladen", "")

            ' --- Sortierung setzen --- '
            'If ViewModel.Auftragsabwicklung IsNot Nothing Then ViewModel.Auftragsabwicklung.Sort = "Geprüft DESC"

            setStatusMessage("Die Aufträge stehen zur Verarbeitung bereit.", "Green")


Ich führe das Laden der DataTable und Verarbeiten in einem anderen Thread aus und wenn ich an der auskommentierten Stelle die Sort Eigenschaft festlege tritt der Fehler immer mal wieder auf. Weiter oben dann nicht. Die Daten werden an sich nicht mehr verändert.

Grüße

01.09.2016 - 12:16 Uhr

Hallo Leute,

ich hab ein kleines Problem. Wenn ich die Sortierung für mein DataView setze wird der erste Eintrag aus irgendeinem Grund mit dem ersten (siehe Bild) unter den grünen dupliziert. Wenn ich dann runterscrolle scheint sich das ganze zu aktualisieren und stimmt dann auch.

Wie kann so etwas passieren?

Grüße

29.04.2016 - 13:17 Uhr

Die Pfade in der cidfmap weichen in der 32 Bit Version von der 64 Bit Version ab, deswegen hatte er weiterhin die Zeichen nicht erkannt.

29.04.2016 - 09:44 Uhr

Hallöchen,

keine Ahnung ob ich das jetzt in den richtigen Thread setze.

Hat jemand Erfahrung mit Ghostscript? Leider stellt er mir keine € Zeichen dar sondern macht daraus ein B. Ich hab schon in der cidfmap Änderungen vorgenommen nur hatten die leider keine Auswirkungen darauf.

Jemand eine Idee?

Grüße

18.04.2016 - 10:29 Uhr

Ich zieh mir die Daten aus der Datenbank und leg die in eine DataTable, ist doch eigentlich am besten um die Daten sauber aufzubereiten oder nicht?