VS2012 で WPF/Silverlight をテストしています。MSDN で、RadialGradient メソッドで四角形を塗りつぶす次のコードを見つけましたが、「'System.Windows.Media.GradientStop' には 2 つの引数を取るコンストラクターが含まれていません」というエラーが発生します。オーバーロードはなく、パラメーターを取らない使用可能なメソッドは 1 つだけですが、その場合、どのように値をロードすればよいでしょうか? 私が調査したところはどこでも、2つのパラメーターで使用されています。
四角形の塗りつぶしは、XAML の場合は正常に機能します...
(部分的な XAML コード)...
<Rectangle.Fill>
<RadialGradientBrush>
<GradientStop Color="Black" Offset="0.063"/>
<GradientStop Color="White" Offset="1"/>
</RadialGradientBrush>
</Rectangle.Fill>
しかし、C#でエラーが発生します...
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Interactivity;
using Microsoft.Expression.Interactivity;
namespace Test
{
public partial class MainPage : UserControl
{
public MainPage()
{
// Required to initialize variables
InitializeComponent();
}
public void drawBars(int numBars)
{
Rectangle rectangle;
double offsetX=0;
double width=0;
for (int i = 0; i < numBars; i++)
{
RadialGradientBrush myBrush = new RadialGradientBrush();
myBrush.GradientOrigin = new Point(0.75, 0.25);
myBrush.GradientStops.Add(new GradientStop(Colors.Yellow, 0.0)); //error
myBrush.GradientStops.Add(new GradientStop(Colors.Orange, 0.5)); //error
myBrush.GradientStops.Add(new GradientStop(Colors.Red, 1.0)); //error
rectangle.Fill = myBrush;
}
}
private void Button_Click_2(object sender, RoutedEventArgs e)
{
drawBars(10);
}
}
}
ここからコードを取得しました... http://msdn.microsoft.com/en-us/library/system.windows.media.gradientstop.color.aspx
ありがとう...