SilverLight?
「dayGrid」として宣言したGridコントロールがあります。
for (int i = 1; i < 28; i++) { //dayGridコントロール縦方向分割 RowDefinition row = new RowDefinition(); row.MinHeight = 30; row.MaxHeight = 50; dayGrid.RowDefinitions.Add(row); } for (int i = 1; i < 28; i++) { //TextBlockコントロール作成 TextBlock tb = new TextBlock(); tb.Name = "tb" + i.ToString(); tb.Text = i.ToString(); //Borderコントロール作成 Border textBorder = new Border(); textBorder.Name = "textborder" + i.ToString(); //TextBlockコントロールをBorderに追加 textBorder.Child = tb; textBorder.BorderBrush = new SolidColorBrush(Colors.Blue); textBorder.BorderThickness = new Thickness(0, 0, 0, 1); textBorder.Cursor = System.Windows.Input.Cursors.Hand; //Borderコントロールは分割したGridの行に所属させる textBorder.SetValue(Grid.RowProperty, (i - 1)); //BorderコントロールをdayGridに追加 dayGrid.Children.Add(textBorder); }
this.Dispatcher.BeginInvoke(delegate() { ... }
borderの右下の処にPopupコントロールを表示させたい場合、次のソースコードのように、設定できます。
GeneralTransform transform = border.TransformToVisual(Application.Current.RootVisual); Point point = transform.Transform(new Point(0, border.ActualHeight)); this.detailPopup.VerticalOffset = point.Y - 20; this.detailPopup.HorizontalOffset = point.X + 20;
App.xaml.csファイルの「App」クラスの「Application_Startup」イベントからよみこめます。 ソースコード例(ひどいコードを書いてます。):
private void Application_Startup(object sender, StartupEventArgs e) { object obj = e.InitParams.["setting1"] }
HTML 側の設定例:
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" style="height: 262px; width: 55%"> <param name="source" value="ClientBin/Calendar.xap"/> <param name="onError" value="onSilverlightError" /> <param name="background" value="white" /> <param name="minRuntimeVersion" value="4.0.50401.0" /> <param name="autoUpgrade" value="true" /> <param name="initParams" value="setting1=1,setting2=2" /> <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50401.0" style="text-decoration:none"> <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Microsoft Silverlight の取得" style="border-style:none"/> </a> </object>
System.Windows.Browser名前空間を利用します。
HtmlDocument htmlDoc = HtmlPage.Document; HtmlElement htmlEl = htmlDoc.GetElementById("input"); htmlEl.SetProperty("disabled", false); htmlEl.SetAttribute("value", "渡す値");
ResourceDictionary定義ファイルの例:
<ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="Assets/Styles.xaml"/> </ResourceDictionary.MergedDictionaries> <Style x:Key="Blurred" TargetType="Button"> <Setter Property="Effect"> <Setter.Value> <BlurEffect Radius="8" /> </Setter.Value> </Setter> </Style> </ResourceDictionary>
呼び出す例:
link.Style = Application.Current.Resources["Blurred"] as Style;
ScorllBarコントロールを利用するではなく、ScrollViewerコントロールを利用します。
<ScrollViewer Name="dateSelectorScorll" ScrollViewer.HorizontalScrollBarVisibility="Auto" Margin="0,-5,6,0"> <Grid Name="dayGrid" Width="auto" Margin="0,0,0,0"> </Grid> </ScrollViewer>
コメント:
0