标签: stackpanel

有没有办法在WPF中更改绘制顺序

有没有办法在不改变StackPanel中这些控件的实际顺序的情况下更改StackPanel中控件的绘制顺序?

我问的原因是我们在按钮之间有一个边距为0的按钮栏.活动按钮与相邻按钮重叠(即边距设置为-10).这里的问题是稍后绘制右按钮,因此在顶部而不是活动按钮上绘制.

我担心我需要制作一个基于网格的自定义控件.

wpf draw stackpanel

6
推荐指数
1
解决办法
2196
查看次数

WPF:stackpanel中元素之间的间距

我有一个带复选框的stackpanel.我似乎无法在带有margin属性的复选框之间使用相同的间距

有人可以告诉我,我做错了什么?

下面的代码给了我这个:

http://www.shrani.si/f/1Y/M6/4eniAdAw/margin.png http://www.shrani.si/f/1Y/M6/4eniAdAw/margin.png

如您所见,元素之间的间距不是恒定的!

<StackPanel MinWidth="150" cal:Bind.Model="{Binding}" Orientation="Horizontal">
    <StackPanel.Resources>
        <Style TargetType="{x:Type CheckBox}">
            <Setter Property="Margin" Value="0,0,20,0"/>
        </Style>
    </StackPanel.Resources>
    <CheckBox IsChecked="{Binding IsShown}" Content="{Binding ModuleName, Converter={StaticResource localizeModuleAndFunctionConverter}}" 
              cal:Message.Attach="[Event Click] = [Action FilterShownModuleFunctions]" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

wpf margin stackpanel

6
推荐指数
1
解决办法
9988
查看次数

如何在StackPanel中设置背景

请有人让我知道如何在xaml的堆栈面板背景中设置图像?我已经尝试了以下它抛出一个Background没有属性的错误Image

   <Button.ToolTip>
        <StackPanel Height="200" Width="200">
            <StackPanel Height="30" Width="200" Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Top" >
                <StackPanel.Background>
                    <Image Source="E:\R\watermark9.bmp"></Image>
                </StackPanel.Background>
                <Image VerticalAlignment="Top"  Width="30" Height="30" Source="E:\My Projects\Interconnect_New\Interconnect\Resources\watermark9.bmp" Name="image1" />
                <TextBlock FontFamily="Aharoni" FontSize="24" FontWeight="Bold" Foreground="Black" TextWrapping="Wrap" VerticalAlignment="Top" Height="30" HorizontalAlignment="Right" Width="143">
                    <Run FontFamily="Andalus" FontSize="18" FontWeight="Normal" Text="Hello! Fancy Tip" />
                </TextBlock>
            </StackPanel>
          </StackPanel>
    </Button.ToolTip>
Run Code Online (Sandbox Code Playgroud)

c# wpf stackpanel

6
推荐指数
2
解决办法
2万
查看次数

获取实际的WPF网格宽度

我有一个带网格的WPF窗口:

<Grid Name="mainGrid">
  <Grid.ColumnDefinitions>
    <ColumnDefinition Width="20*" />
    <ColumnDefinition Width="700*" />
    <ColumnDefinition Width="190*" />
  </Grid.ColumnDefinitions>
  <Grid.RowDefinitions>
    <RowDefinition Height="80" />
    <RowDefinition Height="220*" />
    <RowDefinition Height="450*" />
    <RowDefinition Height="160*" />
    <RowDefinition Height="30" />
  </Grid.RowDefinitions>
</Grid>
Run Code Online (Sandbox Code Playgroud)

在代码隐藏中,我将一个stackpanel添加到第一列,第二行mainGrid,但我希望stackpanel的最大宽度为第1列的宽度 - 50px.我偶然发现了stkPanel.Width = mainGrid.ColumnDefinitions(1).Width.ToString - 50,但是这会错误:

700*不能转换为double

有没有办法获得网格列的实际宽度,因为它显示在屏幕上以使用我想要的方式,或者我是否设置填充或类似?

谢谢,

马特

wpf grid width stackpanel

6
推荐指数
2
解决办法
1万
查看次数

在WPF中,有没有办法使StackPanel像Grid一样对齐列?

例如,我可以这样做:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Width="Auto">
        <RowDefinition Width="Auto">
        <RowDefinition Width="Auto">
    </Grid.RowDefinitions>
    <TextBlock Grid.Row="0" Grid.Column="0">Header 1</TextBlock>
    <TextBox Grid.Row="0" Grid.Column="1" MaxLines="1" />
    <Button Grid.Row="0" Grid.Column="2">Send</Button>
    <Button Grid.Row="0" Grid.Column="3">Save</Button>
    <TextBlock Grid.Row="1" Grid.Column="0">Header 2</TextBlock>
    <TextBox Grid.Row="1" Grid.Column="1" MaxLines="1" />
    <Button Grid.Row="1" Grid.Column="2">Send</Button>
    <Button Grid.Row="1" Grid.Column="3">Save</Button>
    <TextBlock Grid.Row="2" Grid.Column="0">Header 3</TextBlock>
    <TextBox Grid.Row="2" Grid.Column="1" MaxLines="1" />
    <Button Grid.Row="2" Grid.Column="2">Send</Button>
    <Button Grid.Row="2" Grid.Column="3">Save</Button>
</Grid>
Run Code Online (Sandbox Code Playgroud)

或者我可以这样做:

<StackPanel>
    <StackPanel Orientation="Horizontal">
        <TextBlock>Header 1</TextBlock>
        <TextBox MaxLines="1" />
        <Button>Send</Button> …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf grid stackpanel

6
推荐指数
1
解决办法
1万
查看次数

如何为stackpanel实现click事件

我在这里查看了stackpanel类http://msdn.microsoft.com/en-us/library/system.windows.controls.stackpanel.aspx,它没有点击事件.

我正在开发一个Windows Phone 8应用程序,我有一个文本框和堆栈面板上的一些按钮.我想要包含一个可以单击stackpanel的功能,然后将其上的控件的可见性设置为折叠,然后再次单击它们时,它们将变为可见.

我该怎么做呢?

c# visibility stackpanel windows-phone-8

6
推荐指数
3
解决办法
2万
查看次数

WPF StackPanel垂直框架全高

我需要用stackpanel(Frame)中的最后一个元素填充空格:

    <DockPanel>
        <StackPanel Orientation="Vertical">
            <Frame NavigationUIVisibility="Hidden" Height="100" x:Name="_menu" />
            <Frame NavigationUIVisibility="Hidden" x:Name="_mainFrame" />
        </StackPanel>
    </DockPanel>
Run Code Online (Sandbox Code Playgroud)

_mainFrame - 从_menu框架到底部填充空白区域

wpf height frame stackpanel

6
推荐指数
1
解决办法
6882
查看次数

使用StackPanel作为ContentControl(WPF)

所以我有一个StackPanel,我将其用作ContentControl.我有一个地方,我希望根据我绑定的数据生成按钮,这一切都很好,但我希望按钮是水平布局,而不是垂直布局,就像当前正在发生的那样.这是一个截图:

替代文字

这是我的ContentTemplate描述中的代码:

<StackPanel Name="wpReleaseButtons" Orientation="Horizontal" Grid.Row="2">
    <ItemsControl IsTabStop="False" ItemsSource="{Binding Path=BranchCommands}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Button Tag="{Binding}" Padding="3">
                     <TextBlock Text="{Binding Path=DisplayValue}" />
                </Button>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

不知道我在这里做错了什么.任何信息,将不胜感激.谢谢!

.net wpf xaml itemscontrol stackpanel

5
推荐指数
1
解决办法
1万
查看次数

我们如何以编程方式更改silverlight控件的zindex?

我以编程方式在堆栈面板中添加了一些控件.我想要做的是,我希望将此stackpanel中的一个控件放在另一个控件上.具体来说,我想在此堆栈面板中的图像上放置按钮.我在c#codebehind中找不到zindex属性.虽然看起来很简单,但我无法找到解决这个问题的任何线索.有人请......

silverlight z-index stackpanel

5
推荐指数
1
解决办法
1万
查看次数

单击StackPanel中的"空白空间"时,不会出现ContextMenu

我有一个HierarchicalDataTemplate,其中包含一些水平StackPanel中的简单项.上下文菜单也分配给根StackPanel容器:

<HierarchicalDataTemplate DataType="{x:Type data:GroupViewModel}"
                              ItemsSource="{Binding Path=Children}">
    <StackPanel Orientation="Horizontal" Margin="2" ContextMenuOpening="groupContextMenuOpening">
        <StackPanel.ContextMenu>
            <StaticResource ResourceKey="groupContextMenu" />
        </StackPanel.ContextMenu>

        <Rectangle Width="16" Height="15" Fill="{Binding Converter={StaticResource HierarchyLevelConverter}}" Margin="0 0 3 0" Cursor="Hand" >
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="MouseLeftButtonDown" >
                    <GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding SetCurrent}"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>                
        </Rectangle>
        <Image Width="16" Height="15" Source="{Binding Path=GroupState, Converter={StaticResource GroupStateConverter}}" Cursor="Hand" Margin="0 0 3 0">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="MouseLeftButtonDown" >
                    <GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding ToggleGroupState}"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </Image>
    </StackPanel>
</HierarchicalDataTemplate>
Run Code Online (Sandbox Code Playgroud)

主机TreeView也使用ContextMenu.我们的想法是,如果您右键单击TreeView中的项目,您将获得它的ContextMenu.如果您右键在树视图中的空白区域中进行clik,您将获得具有较少选项的"默认"上下文菜单.

这一切都在解决一个奇怪的问题.如您所见,水平StackPanel在图像之间留下了边距.如果我在项目之间右键单击该空间,则会显示TreeView上下文菜单.我希望我的HierarchicalDataTemplate中定义的ContextMenu会弹出,因为我右键单击StackPanel本身.

我发现,如果我为StackPanel分配背景颜色,那么它可以正常工作,但我希望尽可能避免这种情况.

有任何想法吗?

wpf xaml stackpanel

5
推荐指数
1
解决办法
3242
查看次数