タグ付けされた質問 「wpf」

Windows Presentation Foundation(WPF)は、Windowsベースのアプリケーションでユーザーインターフェイスをレンダリングするためのサブシステムです。

4
プログラムでグリッドの行と列の位置を設定する方法
Stackpanel内に2つのグリッドがあります。最初のグリッドの名前はGridXです。最初に、グリッド内に、テキストボックスの2D配列(RowDefs / ColumnDefs)があります。XAMLのTextBox定義は次のとおりです。 <TextBox x:Name="A1" Grid.Row="4" Grid.Column="5" TextAlignment="Center" /> GridXの一部と同じ位置にプログラムでTextBlockを追加したいと思います。 効果はこのようでなければなりません <TextBlock Grid.Row="4" Grid.Column="5" HorizontalAlignment="Left" VerticalAlignment="Top" Text="10" FontSize="8"/> これを追加する方法。私はこれを試しました: TextBlock tblock = new TextBlock(); GridX.SetColumn(tblock, cIndex); GridX.SetRow(tblock, rIndex); しかし失敗しました。 もう一度これを試しました: int rIndex = Grid.GetRow(txtBox); int cIndex = Grid.GetColumn(txtBox); TextBlock tblock = new TextBlock(); tblock.VerticalAlignment = VerticalAlignment.Top; tblock.HorizontalAlignment = HorizontalAlignment.Left; tblock.FontSize …
89 wpf  gridview 



10
コードビハインドで定義されたバインディングオブジェクト
コードビハインドでインスタンス化されているオブジェクトがあります。たとえば、XAMLはwindow.xamlと呼ばれ、window.xaml.cs内にあります。 protected Dictionary<string, myClass> myDictionary; XAMLマークアップのみを使用して、このオブジェクトをリストビューなどにバインドするにはどうすればよいですか? 更新: (これはまさに私のテストコードにあります): <Window x:Class="QuizBee.Host.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="{Binding windowname}" Height="300" Width="300" DataContext="{Binding RelativeSource={RelativeSource Self}}"> <Grid> </Grid> </Window> そして分離コードで public partial class Window1 : Window { public const string windowname = "ABCDEFG"; public Window1() { InitializeComponent(); } } タイトルが「ABCDEFG」になるはずだとしたら?しかし、何も表示されなくなります。
88 c#  .net  wpf  binding 

4
TextBlockのスタックを使用する代わりに、文字列を連結します
WPFItemsControlにCustomerオブジェクトのリストを表示したいと思います。このためのDataTemplateを作成しました: <DataTemplate DataType="{x:Type myNameSpace:Customer}"> <StackPanel Orientation="Horizontal" Margin="10"> <CheckBox"></CheckBox> <TextBlock Text="{Binding Path=Number}"></TextBlock> <TextBlock Text=" - "></TextBlock> <TextBlock Text="{Binding Path=Name}"></TextBlock> </StackPanel> </DataTemplate> したがって、基本的に必要なのは、NUMBER-NAMEを含む単純なリスト(チェックボックス付き)です。バインディング部分で番号と名前を直接連結する方法はありませんか?
88 .net  wpf  datatemplate 

5
wpfでウィンドウ内の要素の絶対位置を取得します
ダブルクリックしたときのウィンドウ/ルート要素に対する要素の絶対位置を取得したいと思います。親内の要素の相対位置は、私が到達できるように見えるすべてであり、私が到達しようとしているのは、ウィンドウに対する相対的なポイントです。画面上ではなく、ウィンドウ上で要素のポイントを取得する方法の解決策を見てきました。

10
スタイルセッターにブレンド動作を追加する方法
Buttonのブレンド動作を作成しました。アプリのすべてのボタンに設定するにはどうすればよいですか。 <Button ...> <i:Interaction.Behaviors> <local:MyBehavior /> </i:Interaction.Behaviors> </Button> しかし、私が試してみると: <Style> <Setter Property="i:Interaction.Behaviors"> <Setter.Value> <local:MyBehavior /> </Setter.Value> </Setter> </Style> エラーが発生します プロパティ「Behaviors」には、アクセシブルなセッターがありません。

9
WPFのApplication.DoEvents()はどこにありますか?
ボタンが押されるたびにズームする次のサンプルコードがあります。 XAML: <Window x:Class="WpfApplication12.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Canvas x:Name="myCanvas"> <Canvas.LayoutTransform> <ScaleTransform x:Name="myScaleTransform" /> </Canvas.LayoutTransform> <Button Content="Button" Name="myButton" Canvas.Left="50" Canvas.Top="50" Click="myButton_Click" /> </Canvas> </Window> * .cs public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void myButton_Click(object sender, RoutedEventArgs e) { Console.WriteLine("scale {0}, location: {1}", …
88 c#  .net  wpf  xaml 

6
StringFormatを使用したWPFバインディングはツールチップでは機能しません
次のコードには、MyTextBlockという名前のTextBlockのTextを、まったく同じBinding表記を使用してTextBoxのTextおよびToolTipプロパティにバインドする単純なバインディングがあります。 <StackPanel> <TextBlock x:Name="MyTextBlock">Foo Bar</TextBlock> <TextBox Text="{Binding ElementName=MyTextBlock, Path=Text, StringFormat='It is: \{0\}'}" ToolTip="{Binding ElementName=MyTextBlock, Path=Text, StringFormat='It is: \{0\}'}" /> </StackPanel> バインディングでは、.NET 3.5 SP1で導入されたStringFormatプロパティも使用されます。これは、上記のTextプロパティでは正常に機能しますが、ToolTipでは壊れているようです。期待される結果は「Itis:Foo Bar」ですが、TextBoxにカーソルを合わせると、ツールチップには文字列形式の値ではなく、バインド値のみが表示されます。何か案は?
87 wpf  binding 

13
WPFで現在の画面のサイズを取得するにはどうすればよいですか?
を使用してプライマリ画面のサイズを取得できることを知っています System.Windows.SystemParameters.PrimaryScreenWidth; System.Windows.SystemParameters.PrimaryScreenHeight; しかし、現在の画面のサイズを取得するにはどうすればよいですか?(マルチスクリーンユーザーは常にプライマリ画面を使用するとは限らず、すべての画面が同じ解像度を使用しているわけではありませんよね?) XAMLからサイズにアクセスできると便利ですが、コード(C#)からアクセスするだけで十分です。
87 c#  wpf  xaml  size  screen 

2
WPFエラー:ターゲット要素の管理FrameworkElementが見つかりません
私が持っているDataGridイメージを持っている行で。この画像は、トリガーで特定の状態にバインドされています。状態が変わったら画像を変えたいです。 テンプレート自体はHeaderStyleのに設定されDataGridTemplateColumnます。このテンプレートにはいくつかのバインディングがあります。最初のバインド日はそれが何日であるかを示し、状態はトリガーで画像を変更します。 これらのプロパティはViewModelで設定されます。 プロパティ: public class HeaderItem { public string Day { get; set; } public ValidationStatus State { get; set; } } this.HeaderItems = new ObservableCollection<HeaderItem>(); for (int i = 1; i < 15; i++) { this.HeaderItems.Add(new HeaderItem() { Day = i.ToString(), State = ValidationStatus.Nieuw, }); } データグリッド: <DataGrid …

9
XAMLの読み取り専用プロパティからのOneWayToSourceバインディング
Наэтотвопросестьответынаスタックオーバーフローнарусском:バインディングActualHeightиActualWidthконтролавсвойствоのViewModel asモードでReadonlyプロパティにバインドしようとしてOneWayToSourceいますが、XAMLではこれを実行できないようです。 <controls:FlagThingy IsModified="{Binding FlagIsModified, ElementName=container, Mode=OneWayToSource}" /> 私は得る: プロパティ 'FlagThingy.IsModified'には、アクセス可能なセットアクセサーがないため、設定できません。 IsModified読み取り専用であるDependencyProperty上FlagThingy。その値をFlagIsModifiedコンテナのプロパティにバインドしたいと思います。 明確にするために: FlagThingy.IsModified --> container.FlagIsModified ------ READONLY ----- ----- READWRITE -------- これはXAMLだけを使用して可能ですか? 更新:まあ、私はこのケースを修正しましたFlagThingy。バインディングをコンテナではなくコンテナに設定しました。しかし、これが可能かどうかはまだ知りたいです。

15
CanExecuteが最初に呼び出されたときにWPFCommandParameterがNULLになる
ItemsControlのDataTemplate内のボタンにバインドされているWPFとコマンドで問題が発生しました。シナリオは非常に単純です。ItemsControlはオブジェクトのリストにバインドされており、ボタンをクリックしてリスト内の各オブジェクトを削除できるようにしたいと思います。ボタンはコマンドを実行し、コマンドが削除を処理します。CommandParameterは、削除するオブジェクトにバインドされています。そうすれば、ユーザーが何をクリックしたかがわかります。ユーザーは自分の「自分の」オブジェクトのみを削除できるはずです。そのため、コマンドの「CanExecute」呼び出しでいくつかのチェックを行って、ユーザーが適切な権限を持っていることを確認する必要があります。 問題は、CanExecuteに渡されるパラメーターが最初に呼び出されたときにNULLであるため、コマンドを有効/無効にするロジックを実行できないことです。ただし、常に有効にしてからボタンをクリックしてコマンドを実行すると、CommandParameterが正しく渡されます。つまり、CommandParameterに対するバインディングが機能しているということです。 ItemsControlとDataTemplateのXAMLは次のようになります。 <ItemsControl x:Name="commentsList" ItemsSource="{Binding Path=SharedDataItemPM.Comments}" Width="Auto" Height="Auto"> <ItemsControl.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <Button Content="Delete" FontSize="10" Command="{Binding Path=DataContext.DeleteCommentCommand, ElementName=commentsList}" CommandParameter="{Binding}" /> </StackPanel> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> ご覧のとおり、Commentsオブジェクトのリストがあります。DeleteCommentCommandのCommandParameterをCommandオブジェクトにバインドしたいと思います。 だから私の質問は、誰かが以前にこの問題を経験したことがあるかということだと思います。CanExecuteがコマンドで呼び出されますが、パラメーターは最初は常にNULLです-それはなぜですか? 更新:問題を少し絞り込むことができました。CommandParameterがデータバインドされているときにメッセージを出力できるように、空のDebugValueConverterを追加しました。問題は、CommandParameterがボタンにバインドされる前にCanExecuteメソッドが実行されることです。コマンドの前にCommandParameterを設定しようとしましたが(提案されているように)、それでも機能しません。それを制御する方法に関するヒント。 Update2:バインディングが「完了」したことを検出して、コマンドの再評価を強制できるようにする方法はありますか?また、コマンドオブジェクトの同じインスタンスにバインドする複数のボタン(ItemsControlの各アイテムに1つ)があるのは問題ですか? Update3と:私は私のSkyDriveにバグの再現をアップロードしていますhttp://cid-1a08c11c407c0d8e.skydrive.live.com/self.aspx/Code%20samples/CommandParameterBinding.zip

1
WPFはそれ自体にバインドします
WPFWindowがあり、どこかListViewにバインドする場所がありList<string>ます。 今、どこかで私ListViewがあるTextBoxとContentプロパティがに設定されています{Binding}。 しかし、これは省略形です。自分自身にバインドするための完全なバインディングを作成するにはどうすればよいですか? {Binding Path=Self}動作しません。動作しません{Binding Self}(後者は前者のショートカットです)。

3
WPF ListViewのヘッダーを非表示にするにはどうすればよいですか?
WPFListViewの各グリッド列の上部にあるヘッダーを非表示にできるようにしたい。 これは私のListViewのXAMLです: <Window x:Class="ListViewTest.Test0.ListViewTest" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Empty ListView Grid" Height="216" Width="435" FlowDirection="LeftToRight" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.IsSharedSizeScope="False"> <Window.Resources> <XmlDataProvider x:Key="CustomersDS" Source="C:\data.xml"/> </Window.Resources> <ListView Margin="0,0,0,50" ItemTemplate="{DynamicResource CustomerTemplate}" ItemsSource="{Binding Source={StaticResource CustomersDS}, XPath=/Customers/Customer}"> <ListView.View> <GridView> <GridViewColumn DisplayMemberBinding="{Binding XPath=Code}"/> <GridViewColumn DisplayMemberBinding="{Binding XPath=Name}"/> <GridViewColumn DisplayMemberBinding="{Binding XPath=Country}"/> </GridView> </ListView.View> </ListView> </Window> 私がこれをバインドしているデータは次のとおりです。 <Customers> <Customer> <Code>1234</Code> <Name>EPI</Name> <Country>Sesame Street</Country> …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.