我有两个dockpanels,每个都有一个左侧StackPanel.
所述的宽度底部的StackPanel确定由宽度文本是在它.
的宽度顶部的StackPanel应该是相同的宽度底部的StackPanel.
我试图通过ElementName将顶部StackPanel的宽度绑定到底部StackPanel的宽度,但这不起作用.
如何使顶部宽度与底部宽度相同?
替代文字http://i33.tinypic.com/59wj6s.jpg
<StackPanel>
<DockPanel LastChildFill="True" Height="100" >
<StackPanel Width="{Binding ElementName=LeftMenuText, Path=Width}"
DockPanel.Dock="Left"
Background="Yellow">
<TextBlock
Text="This is some text."/>
</StackPanel>
<StackPanel DockPanel.Dock="Right"
Background="Orange">
</StackPanel>
</DockPanel>
<DockPanel
Height="3"
Background="Black"></DockPanel>
<DockPanel LastChildFill="True" Height="100">
<StackPanel Name="LeftMenuWrapper"
DockPanel.Dock="Left"
Background="Yellow">
<TextBlock
Text="This is some text that is longer."/>
</StackPanel>
<StackPanel DockPanel.Dock="Right"
Background="Blue">
</StackPanel>
</DockPanel>
</StackPanel>
Run Code Online (Sandbox Code Playgroud) 我是WPF的新手.我有一个页面,显示来自SQL数据库的数据使用L2S.在L2S返回一个DataTable包含所有可用的选项,从一个特定的区域选择.它从DataBase返回的每一行都需要是一个checkbox,我想把这些复选框放在一个stackpanel.
我在看数据绑定StackPanel吗?这感觉不对......我猜我需要循环遍历DataTable并为每一行创建复选框项,然后在运行时将它们添加到StackPanel.它是否正确?回归DataTable问题的一部分?
我看到它StackPanel有一个DataContext属性,但我不能只设置它因为它不知道使每个项目成为一个checkbox,对吗?
如果我在StackPanel中有一组控件,当StackPanel中的任何控件获得焦点时,是否有通用的方法来更改stackpanel的背景?(当StackPanel中的控件没有焦点时,显然会切换背景).下面的代码对我有用,但是有一个通用的方法来完成这个任务,而不必在我的页面中的每个StackPanel中列出每个控件.
谢谢!
<StackPanel Margin="5">
<StackPanel.Style>
<Style TargetType="{x:Type StackPanel}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsFocused, ElementName=chkOccupiedByMortgagor}" Value="true">
<Setter Property="Background" Value="Gray" />
<Setter Property="Opacity" Value=".5" />
</DataTrigger>
<DataTrigger Binding="{Binding IsFocused, ElementName=chkOccupiedByNewOwner}" Value="true">
<Setter Property="Background" Value="Gray" />
<Setter Property="Opacity" Value=".5" />
</DataTrigger>
</Style.Triggers>
</Style>
</StackPanel.Style>
<CheckBox Margin="2" x:Name="chkOccupiedByMortgagor">Mortgagor</CheckBox>
<CheckBox Margin="2" x:Name="chkOccupiedByNewOwner">New Owner</CheckBox>
<CheckBox Margin="2" x:Name="chkOccupiedByTenant">Tenant</CheckBox>
<CheckBox Margin="2" x:Name="chkOccupiedByUnknownOccupant">Unknown Occupant</CheckBox>
</StackPanel>
Run Code Online (Sandbox Code Playgroud) 我试图在一个大的StackPanel上切换一个小的StackPanel:当小的StackPanel切换并显示可见时,背面的大StackPanel是灰色的,具有不透明度颜色.有谁知道如何使整个StackPanel变灰?
我想知道我是否可以将我的Button isEnabled绑定到我的StackPanel Children(有孩子).如果stackpanel有子项,那么我的按钮被启用,没有孩子我的按钮被禁用.目前我只是在代码中处理这个,但我开始想知道这是否是我可以绑定的东西.谢谢你的任何想法......
出于某种原因,在dataTemplate中添加的项目将不会执行我告诉他们要做的事情!
我试图将一些图像水平放置在一个堆叠面板中,但无论我如何尝试,它们只是垂直移动.
这是我的xaml.
<DataTemplate x:Name="View">
<Border BorderBrush="Red" BorderThickness="4" >
<StackPanel Orientation="Horizontal">
<ItemsControl ItemsSource="{Binding Path=_Collection, Mode=OneWay}" >
<ItemsControl.ItemTemplate>
<DataTemplate >
<Image Source="{Binding _Source}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<TextBlock Height="30" FontFamily="Trebuchet MS" FontSize="18" Text="{Binding _Name}" />
</StackPanel>
</Border>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
一切都很好.这是从用户控件内部调用的
<ItemsControl ItemTemplate="{StaticResource siteView}" ItemsSource="{Binding Path=_SiteDisplay"/>
Run Code Online (Sandbox Code Playgroud)
我的obervable集合_SiteDisplay包含另一个名为_Collection的oberservable集合,它保存图像的url.
这是从实际代码中删除的,但说明了问题.我不能让图像水平对齐!非常感谢任何帮助 - 或建议更好的方法.
我在StackPanel中有更多的扩展器(Orientation = Vertical).当我扩展一个时,扩展的一个下面的其他人似乎是模糊的.就像它SnapsToDevicePixels = False一样.
我认为问题可能在StackPanel中,因为它不支持.NET 3.5(我使用)中的UseLayoutRounding.这可能或问题可能在其他地方吗?
我几乎到处都把SnapsToDevicePixels ="True",但没有改变.
(字体大小为12因此它不能[1]:WPF模糊字体问题 - 解决方案)
好吧,我正在尝试使用ColorAnimation更改DataTemplate中StackPanel的背景颜色:
<DataTemplate DataType="{x:Type logic:Sensor}">
<StackPanel Name="SensorPanel" MouseDown="SensorPanel_MouseDown">
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Status}" Value="0">
<!--<Setter TargetName="SensorPanel" Property="Background" Value="LawnGreen" />-->
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation
Storyboard.TargetName="SensorPanel"
Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)"
To="LawnGreen" Duration="0:0:0.25" AutoReverse="True" RepeatBehavior="4">
</ColorAnimation>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
没有编译时错误.但是当我运行它时会抛出InvalidOperationException:"'Background'属性不指向路径中的DependencyObject'(0).(1)'."
什么?:d
我正在使用StackPanels.在我的应用程序中,我必须显示具有3到x图像的多重tiff,并且在我点击其中一个之后必须在新窗口中打开它们.
显示它们很简单:
public void Bilder_anzeigen(string path)
{
TiffBitmapDecoder decoder = new TiffBitmapDecoder(new Uri(path), BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
foreach (var i in decoder.Frames)
{
Image myImage = new Image();
myImage.Source = i;
Stackpanel_Tiff.Children.Add(myImage);
}
}
Run Code Online (Sandbox Code Playgroud)
但是如何让孩子点击StackPanel?有一个MouseDown事件,但在它被引发后,我不知道我点击了哪个图像.我只知道有一个点击.如何找到点击的图像?
我正在制作一个工具栏.我希望窗口的宽度等于按钮的总宽度.StackPanel似乎非常适合这项工作,因为它可以解决所有问题,但它不会延伸.
<Window Width="auto">
<StackPanel Orientation="Horizontal" Width="auto">
<Button />
<Button />
</StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
我该如何工作?
stackpanel ×10
wpf ×9
c# ×3
.net ×2
background ×2
xaml ×2
.net-3.5 ×1
binding ×1
blurry ×1
button ×1
datatemplate ×1
dockpanel ×1
focus ×1
isenabled ×1
itemscontrol ×1
linq ×1
silverlight ×1
width ×1