Tag: xaml

XAML网格可见性转换?

我有一个可见性绑定到我的viewmodel属性的网格。 这一切工作正常 – 网格出现/消失正确。 我的问题是,我怎样才能应用一个转换,而不是立即从屏幕上消失,网格内容滑入UI的边缘? 当可见时,应该再次滑出。 <Grid Grid.Row="0" Grid.RowSpan="2" Grid.Column="0" Margin="30,30,0,30" Visibility="{Binding IsSearchEnabled, Converter={StaticResource visibilityConverter}}"> <Grid.RowDefinitions> <RowDefinition Height="60"></RowDefinition> <RowDefinition Height="*"></RowDefinition> </Grid.RowDefinitions> …

如何在共享应用程序资源中实现导航button?

我目前正在尝试创build一个简单的应用程序,从我制作的API中提取数据并将其显示在列表中。 然后,您应该能够单击列表项目导航到一个图像查看器等详细的查看页面。为了这个工作,我需要导航到一个名为PlanViewer.xaml的页面(目前只适用于Windows Phone应用程序部分,尽pipe这两者虽然)。 对于我的列表工作,我在我的共享App.xaml构build了以下数据模板: <DataTemplate x:Key="PlanDataTemplate"> <StackPanel Orientation="Horizontal"> <Button Name="NavigatePlan" Tag="{Binding FilePath}"> <StackPanel> <TextBlock Style="{StaticResource SubheaderTextBlockStyle}" Text="{Binding Name}" /> <TextBlock Style="{StaticResource TitleTextBlockStyle}" Text="{Binding LastUpdate}" /> </StackPanel> </Button> </StackPanel> </DataTemplate> 我将它应用于我的MainPage.xaml ,如下所示: <ItemsControl x:Name="PlanList" ItemTemplate="{StaticResource PlanDataTemplate}" ItemsSource="{Binding PlanItems}" > <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <VirtualizingStackPanel /> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> </ItemsControl> 我不能将任何事件绑定到App.xaml的button,所以我想我需要使用一个ICommand接口。 到目前为止,我可能还有一个更重要的错误。 TL; DR为我的目标:我想调整数据模板,使每个button链接到一个页面PlanViewer.xaml与一个参数描述哪个计划应该显示(例如ID或文件path)。

如何通过绑定在canvas中显示项目

我有使用数据绑定在Canvas中显示的项目列表。 ItemsToShowInCanvas = new ObservableCollection<ItemDetail> { new ItemDetail {Text = "ABC", Top = 10, Left = 200}, new ItemDetail {Text = "DEF", Top = 100, Left = 300}, new ItemDetail {Text = "PQR", Top = 50, Left = 150} }; ItemDetail是一个简单的类,具有Text,Top和Left值的自动属性 public class ItemDetail { public string Text { get; set; } public double Top […]

“{绑定path=。}”和“{绑定}”是否真的相等

在我的WPF项目中,我有一个ListBox来显示List<string>集合中的项目。 我想让这些项目的文本是可编辑的,所以我用TextBox将它们包装在ItemTemplate中(可能不是最好的方法,但我是WPF的新手)。 我只是简单地将TextBoxes的Text属性绑定到每个项目的值。 我终于偶然发现了一个使用单个点或句点作为Path属性( {Binding Path=.} )的例子: <ListBox ItemsSource="{Binding ElementName=recipesListbox,Path=SelectedItem.Steps}"> <ListBox.ItemTemplate> <DataTemplate> <TextBox Text="{Binding Path=.}"/> </DataTemplate> </ListBox.ItemTemplate> </ListBox> 不过,我不明白为什么简单地使用{Binding}不起作用。 它提出了一个“ 双向绑定需要Path或XPath ”的例外,正如微软所说: (。)path可用于绑定到当前源。 例如,Text =“{Binding}”相当于Text =“{Binding Path =。}” 有人能揭示这种模棱两可的行为吗? 编辑:此外,似乎{Binding Path=.}不一定提供双向绑定,因为修改文本和移动焦点不会更新基础源(同一个源也有属性显示,并成功修改DataGrid控件)。 我肯定在这里错过了一些东西。

在代码隐藏的DataTemplate中find一个WPF元素

我有一个数据模板 <Window.Resources> <DataTemplate x:Key="BarChartItemsTemplate"> <Border Width="385" Height="50"> <Grid> <Rectangle Name="rectangleBarChart" Fill="MediumOrchid" StrokeThickness="2" Height="40" Width="{Binding}" HorizontalAlignment="Right" VerticalAlignment="Bottom"> <Rectangle.LayoutTransform> <ScaleTransform ScaleX="4"/> </Rectangle.LayoutTransform> </Rectangle> <TextBlock Margin="14" FontWeight="Bold" HorizontalAlignment="Right" VerticalAlignment="Center" Text="{Binding}"> <TextBlock.LayoutTransform> <TransformGroup> <RotateTransform Angle="90"/> <ScaleTransform ScaleX="-1" ScaleY="1"/> </TransformGroup> </TextBlock.LayoutTransform> </TextBlock> </Grid> </Border> </DataTemplate> </Window.Resources> 我在表格上有一个button。 我需要从dataTemplate改变比例(scaleTransform)矩形。 我该如何访问上述button的Button_Click事件中的“rectangleBarChart”元素?

在列表框中select一个文本框项目不会更改列表框的选定项目

我有一个wpf列表框,显示一个文本框列表。 当我点击文本框时,列表框select不会改变。 我必须单击文本框旁边的select列表框项目。 是否有一些属性,我需要设置文本框转发点击事件到列表框?

使用EventTrigger设置属性

我希望能够使用EventTrigger来设置一个属性,这里有一些问题。 1)EventTriggers只支持Actions,所以我必须使用storyBoard来设置我的属性。 2)一旦我使用故事板,我有两个select: 停止:一旦animation停止,该值将恢复到animation开始之前 HoldEnd:这将locking属性,以便代码和用户交互都不能改变animation所保存的属性。 在下面的例子中,我想设置IsChecked属性为False,当button被点击时,我希望用户能够更改IsChecked和/或我想要能够更改代码中的属性。 例: <EventTrigger SourceName="myButton" RoutedEvent="Button.Click"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <BooleanAnimationUsingKeyFrames Storyboard.TargetName="myCheckBox" Storyboard.TargetProperty="IsChecked" FillBehavior="Stop"> <DiscreteBooleanKeyFrame KeyTime="00:00:00" Value="False" /> </BooleanAnimationUsingKeyFrames> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> 我意识到我可以在故事板完成后使用“Completed”事件来将值设置为False。 然而,在这个例子中,我想包含XAML中的逻辑,因为这个逻辑将被用在一个自定义的控件上,并且只针对UI。

WPF:带有用户拖动后触发的事件的滑块

我目前正在制作一个WPF的MP3播放器,我想制作一个滑块,让用户通过向左或向右滑动滑块来寻找MP3中的特定位置。 我曾尝试使用ValueChanged事件,但每次它的值被改变时触发,所以如果你拖动它,事件将多次触发, 我希望事件只在用户完成拖动滑块时触发,然后获取新的价值 。 我怎样才能做到这一点? [更新] 我在MSDN上发现了这个post ,基本上讨论了同样的事情,他们提出了两个“解决scheme”。 要么在Slider子类中调用,要么调用ValueChanged事件中的DispatcherTimer ,该事件在时间范围之后调用该操作。 你可以拿出上面提到的两个更好的东西吗?

有没有办法在WPF中使用数据模板inheritance?

是否有可能有DataTemplate组合或inheritance(类似于样式“BasedOn”)? 有2个我需要的情况。 对于inheritance类:我有一个基类与几个inheritance类。 我不想在每个派生类的DataTemplate复制基类模板。 不同的视图:对于同一个类,我想定义一个数据模板,然后根据需要添加到该模板。 防爆。 基本模板将在对象中显示数据,然后我需要不同的模板,可以在对象上执行不同的操作,同时显示数据(inheritance基模板)。

将视图状态绑定到MVVM视图模型?

如何将控件的VisualStateManager状态绑定到viewmodel中的属性? 可以这样做吗?