在 Silverlight 的 ComboBox 中画线
Draw line in ComboBox in Silverlight
如何在 Silverlight 中以编程方式在 comboBoxItem 中创建行?
我想要这样的东西:
谢谢。
我尝试这样做:
var lineTypeComboBox = new ComboBox
{
Width = 40,
Background = Background,
Margin = new Thickness(0),
Padding = new Thickness(0)
};
lineTypeComboBox.Items.Add(new Line {X1 = 1, X2 = 20, Y1 = 1, Y2 = 20});
我从你的代码中看出你没有设置线条的 Stroke
颜色。尝试将其设置为黑色(并且不要忘记将 ComboBox 添加到某个容器):
var lineTypeComboBox = new ComboBox
{
Width = 40,
Background = Background,
Margin = new Thickness(0),
Padding = new Thickness(0)
};
lineTypeComboBox.Items.Add(new Line { X1 = 1, X2 = 20, Y1 = 1, Y2 = 20, Stroke = new SolidColorBrush(Colors.Black) });
//add ComboBox to StackPanel
spMain.Children.Add(lineTypeComboBox);
此外,我真的不认为这是一种像在 Win Forms 中那样用代码编写所有这些内容的好方法。为什么不 XAML,Silverlight 最好的部分之一?哦,你的线坐标有点偏离,你画对角线。
这个怎么样?
<ComboBox Width="40">
<ComboBox.Resources>
<Style TargetType="Line">
<Setter Property="X1" Value="1" />
<Setter Property="Y1" Value="1" />
<Setter Property="X2" Value="20" />
<Setter Property="Y2" Value="1" />
<Setter Property="Stroke" Value="Black" />
</Style>
</ComboBox.Resources>
<ComboBox.Items>
<ComboBoxItem>
<Line StrokeThickness="1" />
</ComboBoxItem>
<ComboBoxItem>
<Line StrokeThickness="3" />
</ComboBoxItem>
<ComboBoxItem>
<Line StrokeThickness="5" />
</ComboBoxItem>
</ComboBox.Items>
</ComboBox>
您可以直接设置所有属性而不是样式,但这样会不太灵活。
如何在 Silverlight 中以编程方式在 comboBoxItem 中创建行?
我想要这样的东西:
谢谢。
我尝试这样做:
var lineTypeComboBox = new ComboBox
{
Width = 40,
Background = Background,
Margin = new Thickness(0),
Padding = new Thickness(0)
};
lineTypeComboBox.Items.Add(new Line {X1 = 1, X2 = 20, Y1 = 1, Y2 = 20});
我从你的代码中看出你没有设置线条的 Stroke
颜色。尝试将其设置为黑色(并且不要忘记将 ComboBox 添加到某个容器):
var lineTypeComboBox = new ComboBox
{
Width = 40,
Background = Background,
Margin = new Thickness(0),
Padding = new Thickness(0)
};
lineTypeComboBox.Items.Add(new Line { X1 = 1, X2 = 20, Y1 = 1, Y2 = 20, Stroke = new SolidColorBrush(Colors.Black) });
//add ComboBox to StackPanel
spMain.Children.Add(lineTypeComboBox);
此外,我真的不认为这是一种像在 Win Forms 中那样用代码编写所有这些内容的好方法。为什么不 XAML,Silverlight 最好的部分之一?哦,你的线坐标有点偏离,你画对角线。 这个怎么样?
<ComboBox Width="40">
<ComboBox.Resources>
<Style TargetType="Line">
<Setter Property="X1" Value="1" />
<Setter Property="Y1" Value="1" />
<Setter Property="X2" Value="20" />
<Setter Property="Y2" Value="1" />
<Setter Property="Stroke" Value="Black" />
</Style>
</ComboBox.Resources>
<ComboBox.Items>
<ComboBoxItem>
<Line StrokeThickness="1" />
</ComboBoxItem>
<ComboBoxItem>
<Line StrokeThickness="3" />
</ComboBoxItem>
<ComboBoxItem>
<Line StrokeThickness="5" />
</ComboBoxItem>
</ComboBox.Items>
</ComboBox>
您可以直接设置所有属性而不是样式,但这样会不太灵活。