• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    BAT
    BAT --- ---
    TENCOKACISTROMY: Ja se ty multiline nody puvodne snazil udelat podobnym zpusobem, ale porad bylo neco spatne (vetsinou dochazelo k tomu, ze se z neznameho duvodu text nody rozlozil do 3 radek) a obdelnik vyberu byl vuci "bounding boxu" nody posunuty do leva o -3px a dalsi drobne opticke vady... (ktere by asi sly vyresit, ale za ten cas by to asi nestalo)
    Rozhodne diky za pomoc, ale asi rovnou prejdu na WPF jak radi JACHYMKO.
    Obema moc dekuju, usetrili jste mi buh vi kolik hodin badani a googleni a pokusovani.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    JACHYMKO: Pokud maji byt vsechny stejne vysoke, tak to jde.
    private void FTreeViewSample_Load(object sender, EventArgs e) {
    	this.treeView1.DrawMode = TreeViewDrawMode.OwnerDrawText;
    	this.treeView1.DrawNode += new DrawTreeNodeEventHandler(treeView1_DrawNode);
    	this.treeView1.ItemHeight *= 2;
    
    	var node_A = this.treeView1.Nodes.Add("First node");
    	var node_A_A = node_A.Nodes.Add("First node - first child");
    	var node_A_A_A = node_A_A.Nodes.Add("First node - first child - first child");
    	var node_A_B = node_A.Nodes.Add("First node - second child");
    	var node_A_C = node_A.Nodes.Add("First node - third child");
    	var node_B = this.treeView1.Nodes.Add("Second node");
    }
    
    void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e) {
    	var rectLine1 = e.Bounds;
    	rectLine1.Height /= 2;
    
    	var rectLine2 = e.Bounds;
    	rectLine2.Height /= 2;
    	rectLine2.Y += rectLine2.Height;
    
    	var textLine1 = e.Node.Text;
    	if ( null == textLine1 ){ textLine1 = string.Empty; }
    	var textLine2 = new string(textLine1.Reverse().ToArray());
    
    	var fontReqular = e.Node.NodeFont;
    	if (null == fontReqular) { fontReqular = e.Node.TreeView.Font; }
    
    	using (var brushLine1 = new SolidBrush(Color.Red)) {
    		e.Graphics.DrawString(textLine1, fontReqular, brushLine1, rectLine1);
    	}
    	using (var fontBold = new Font(fontReqular, FontStyle.Bold)) {
    		using (var brushLine2 = new SolidBrush(Color.Green)) {
    			e.Graphics.DrawString(textLine2, fontBold, brushLine2, rectLine2);
    		}
    	}
    }
    
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BAT, JACHYMKO: To by melo jit normalne pomoci property DrawMode a udalosti DrawNode.
    SLUPKA
    SLUPKA --- ---
    BAT: Ale je, nevytvářej WinForms aplikace, ale WPF aplikaci...
    BAT
    BAT --- ---
    JACHYMKO: Tak to mam teda smulu, protoze v Express edici System.Windows.Controls vubec neni :(
    BAT
    BAT --- ---
    Potreboval bych si napsat custom control TreeView v MS Visual C# 2010 Express.

    Duvod:
    Potrebuju mit v ramci jedne TreeNode vice udaju zobrazenych ve dvou radcich a jeste ruznymi styly (tucnost, barva, velikost pisma, atp.).

    Muzete me nasmerovat na nejaky howto?

    C# je pro me nova vec a tak trochu tapu.
    Puvodne jsem myslel, ze bude stacit udelat si vlastni myTreeNode, ale tam jsem narazil pri pouziti v puvodnim TreeView ktery poruznu pouziva puvodni TreeNode (vyhniva to na duvodech jako myTreeNode != TreeNode, atp.).
    NECROMAN
    NECROMAN --- ---
    TENCOKACISTROMY: asmx umi vratit data jako xml nebo json... jinak uz jsem to vyresil - proste vratim objektovou strukturu a ten microsofti serializator to prevede na json. sice to navic strci do jednoho objektu a vsemu prida polozky __type, ale vytahat to z toho jde.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Poslat jako string?
    NECROMAN
    NECROMAN --- ---
    Dotaz, jak pomoci asmx webservicy poslat vlastni json? Ona ma sma v sobe jakysi serializator, ktery ale do vystupu cpe navic promenne __type a take to vse zabali do objektu 'd'. Json string si umim sam vytvorit, ale ten samotny poslat nejde.
    NECROMAN
    NECROMAN --- ---
    Raj Aththanayake's Blog | VS2010 and ReSharper performances
    http://blog.rajsoftware.com/post/2011/02/01/VS2010-and-ReSharper-performances.aspx
    ESY
    ESY --- ---
    MILL: popravde netusim co chces:]]
    nahod ten obrazek co chces editovat a budem vsichni moudrejsi :]]
    MORMEGIL
    MORMEGIL --- ---
    MILL: To je zvláštní. Ty máš bitmapu s jednobarevným pozadím a na ní černé plochy (a nic víc) a chceš je odstranit? Tak tu bitmapu zahoď a udělej si novou obsahující jen to jednobarevné pozadí. Nebo z té původní chceš něco zachovat? Tak nám řekni trochu víc.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    VIRTUALVOID: No vidis, a k tomu jsem treba ja ten reflector pouzival docela casto :).

    MILL: V podstate si vystacis s for-cyklama, najdes pixel s hledanou barvou a od nej pak hledas okolni pixely.
    MILL
    MILL --- ---
    potreboval bych poradit jak v c# na detekci+odstraneni nepravidelnych cernych ploch na bitmape s jednobarevnym pozadim

    diky
    VIRTUALVOID
    VIRTUALVOID --- ---
    TENCOKACISTROMY: tak ja sa zas do toho nehodlam (jak by rekl kaluza: hodlat nedelam) pustit po hlave a dokoncit... len reflection bola jedna z veci co ma ako low-level zavislaka vzdy zaujimali.

    scitane a podtrhnute, na vb.net sa mozem vy... :)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    VIRTUALVOID: V tom pripade hodne stesti (obzvlast s tim VB.NET :)).
    VIRTUALVOID
    VIRTUALVOID --- ---
    TENCOKACISTROMY: cvok ako ja napr. =]
    MORMEGIL
    MORMEGIL --- ---
    H_U_N_T_E_R: To je právě ono… „používáte“… Občas se do něj podívám, protože to je rychlejší než hledat konkrétní detail v dokumentaci. Ale že bych se bez něj neobešel, to teda ne. Navíc – jejich přístup mě značně znejistěl, takže si na něj ani zvykat nechci (si na něj zvyknu a oni příští rok zase změněj model financování na $50 ročně nebo něco). Za LINQPad jsem dal nějakých $39 s radostí (a to je ve skutečnosti jen příplatek za autocompletion). Ale už jsme tu asi off-topic.
    H_U_N_T_E_R
    H_U_N_T_E_R --- ---
    MORMEGIL: No mě prozměnu ani těch $100 za pro verzi nepříjde moc, pokud pro to máte nějaké rozumné využití (krom hraní si jsem to k práci moc často nevyužil). No a pokud to používáte, tak 1800 za pracovní nástroj není mnoho.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    VIRTUALVOID: Existuje na priklad Mono.Cecil, jenze kdo se bude s*at s prevodem IL do C#, VB.NET, atd... ?
    Kliknutím sem můžete změnit nastavení reklam