Das Ändern des Wertes muss in dem Moment dann natürlich ein neuzeichen veranlassen oder du stößt dieses direkt für das Label an.
Die Änderung an der Klasse könnte dann so aussehen:
private uint _transparencyLevel;
[Browsable(true)]
public uint TransparencyLevel
{
get { return _transparencyLevel; }
set
{
_transparencyLevel = value;
this.Invalidate();
}
}
Das hängt natürlich immer von der Anforderung ab.
Au da hast Du natürlich recht 😃.
Auch einfach ein kleines CustomLabel tuts in dem Fall wahrscheinlich!?
So alla
public class TransparencyLabel : System.Windows.Forms.Label
{
[Browsable(true)]
public uint TransparencyLevel
{
get;
set;
}
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
//base.OnPaint(e);
var size = e.Graphics.MeasureString(this.Text, this.Font);
e.Graphics.DrawString(this.Text, this.Font, new SolidBrush(Color.FromArgb((int)(TransparencyLevel * 2.55), this.ForeColor)), new PointF(5, this.Height / 2 - size.Height / 2));
}
}
Hi,
du kannst die Transparenz der Hintergrundfarbe über den Alphakanal der Farbe steuern.
label1.Background = Color.FromArgb((int)(25 * 2.55), Color.Black);
Gruß
t0ms3n
Im View siehts eben so aus (da kein model)
@Html.DropDownList("farben",(SelectList)ViewBag.colours)
private SelectList getFarben()
{
List<Object> colours = new List<Object>(){
new {value="1", text="black"},
new {value="2", text="white"},
new {value="3", text="blue"}
};
return new SelectList(colours, "value", "text", "3");
}
funktioniert wunderbar und zeigt blue als selected
value von white wäre aber 2 !?
mal probiert?
Hi,
wie wärs mit erst die requested Items auslesen und danach die restlichen anfügen?
XDocument doc = XDocument.Parse("xml");
var x = (( from y in doc.Root.Descendants("result")
where y.Element("status").Value == "requested"
select new { id = y.Element("id").Value, guid = y.Element("GUID").Value, status = y.Element("status").Value })
.Union
(
from y in doc.Root.Descendants("result")
where y.Element("status").Value != "requested"
select new { id = y.Element("id").Value, guid = y.Element("GUID").Value, status = y.Element("status").Value }
));
Gruß,
t0ms3n
Hi,
ggf. liegt dein Problem an anderer Stelle !?
Folgender Code funktioniert bei mir ohne Probleme:
[FlagsAttribute]
[Serializable]
public enum WeekDays
{
[XmlEnum("1")]
Sunday = 1,
[XmlEnum("2")]
Monday = 2,
[XmlEnum("4")]
Tuesday = 4,
[XmlEnum("8")]
Wednesday = 8,
[XmlEnum("16")]
Thursday = 16,
[XmlEnum("32")]
Friday = 32,
[XmlEnum("64")]
Saturday = 64,
[XmlEnum("65")]
WeekendDays = Sunday | Saturday,
[XmlEnum("62")]
WorkDays = Monday | Tuesday | Wednesday | Thursday | Friday ,
[XmlEnum("127")]
EveryDay = WeekendDays | WorkDays
}
public MainWindow()
{
InitializeComponent();
XmlSerializer ser = new XmlSerializer(typeof(WeekDays));
FileStream fsOpen = new FileStream("test.xml", FileMode.Open);
XmlReader reader = XmlReader.Create(fsOpen);
var x = ser.Deserialize(reader);
// x --> Sunday | Monday | Tuesday | Saturday
reader.Close();
fsOpen.Close();
WeekDays day = (WeekDays)71;
File.Delete("test.xml");
Stream fs = new FileStream("test.xml", FileMode.CreateNew);
XmlWriter writer = new XmlTextWriter(fs, Encoding.Unicode);
ser.Serialize(writer, day);
writer.Close();
}
Gruß,
t0ms3n
Hi,
korrekt. Aber ansonsten ist auch Sortieren nicht sooo aufwendig.
Wenns ≥ .NET 3.5 ist dann kannst du auch einfach OrderBy auf deine Liste anwenden und das Kriterium angeben.
kunden = kunden.OrderBy(x => x.Abreisedatum)
Gruß
t0ms3n
<asp:Literal runat="server" Text="CO<sub>2</sub>"></asp:Literal>
Erzeugt doch aber genau das CO2 wobei die Zwei tiefgestellt ist !?
Hi,
warum denn überhaupt irgendwas ändern? Das passt doch bereits.
<sup>2</sup> --> zeichnet einen Text als hochgestellt aus
<sub>2</sub> --> zeichnet einen Text als tiefgestellt aus
Gruß,
t0ms3n
Hi,
gibt sicher noch kompaktere Ansätze, aber hier der erste der mir eingefallen ist 😃.
byte[] bits = new byte[8];
int val = 13;
for (int i = 0; i < bits.Length; i++)
{
bits[i] = (val & (int)Math.Pow(2, i)) > 0 ? (byte)1 : (byte)0;
}
Gruß,
t0ms3n
Ist es vielleicht das was Du suchst?
<ListView Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource AncestorType=Viewbox}}" >
Hi,
wenn du die Applikation startest sollte im Output schon stehen, dass das Binding nicht funktioniert.
Denn du setzt den DataContext bereits auf die Collection. In diesem Fall sieht das Binding etwas merkwürdig aus:
<Label Grid.Column="1" Grid.Row="0" Content="{Binding [0].FirstName}"></Label>
<Label Grid.Column="1" Grid.Row="1" Content="{Binding [0].LastName}"></Label>
Dann funktioniert es auch mit dem Binding. Eine zweite Möglichkeit wäre den DataContext auf das MainWindow zu setzen und das Binding so zu lassen wie es ist. Das würde dann so aussehen:
private ObservableCollection<Person> _toBind;
public ObservableCollection<Person> ToBind
{
get { return _toBind; }
set {
_toBind = value;
}
}
public MainWindow()
{
InitializeComponent();
this.ToBind = new ObservableCollection<Person>();
for (int i = 0; i < 10; i++)
{
this.ToBind.Add(new Person());
this.ToBind[i].FirstName = "First" + i.ToString();
this.ToBind[i].LastName = "Last" + i.ToString();
}
this.DataContext = this;
}
Beste Grüße,
t0ms3n