对不起,如果我没有找到关于我这个小烦恼问题的相关帖子/问题。
我有一个带有DockPanel(LastChildFill = True)的WPF窗口,它有三个控件:
我所做的是当正在进行的测试是"通过"它没有数据可以推入列表框,所以我将其折叠,然后我希望标题标签位于列表框及其边框未使用的可用空间的中心。
当我有一个"失败"或者"错误",我有数据放在列表框中然后它是可见的,一切都和预期的一样。
在来到这里之前我尝试了很多东西,因为我需要在我写这篇文章的时候完成其他工作,所以我已经失去了足够的时间。
有人能指出我如何解决我的问题(当列表框+边框折叠时居中标签)?
以下是此窗口的xaml代码:
library(plm)
data <- employmentsez
data$lfirms2 <- data$lfirms*data$lfirms
data$sezname <- as.factor(data$sezname)
data <- plm.data(data, index=c("code", "year"))
fit1 <- plm(lemployment ~ lfirms + lfirms2 + lfirmsfor + lwages + nuts51 + lgovgrants + leusubs + agrishare, data=data, model="within", effect="individual")
summary(fit1)
R-Squared: 0.085873
Adj. R-Squared: -0.039652
以下是显示PASS和ERROR以显示差异的图像 当列表框折叠时,绿色石灰窗口中的PASSED标题消息应该位于窗口中间..
感谢您的所有帮助和时间
答案 0 :(得分:1)
我会设计像这样的整个事情:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Border BorderBrush="Black" BorderThickness="2"
Grid.RowSpan="{Binding PassErrorBooleanProperty, Converter={StaticResource BoolToRowSpanConverter}}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label
x:Name="main_message"
Padding="15"
FontSize="50"
Content="MAIN_MSG"
DockPanel.Dock="Top"
HorizontalAlignment="Center"
VerticalContentAlignment="Center" />
<Border Grid.Row="1" BorderBrush="Chocolate" BorderThickness="2" Margin="10" Name="messages_border"
Visibility="{Binding PassErrorBooleanProperty, Converter={StaticResource BoolToVisibilityConverter}}">
<ListBox
Background="{Binding ElementName=DisplayBannerMessage, Path=Background}"
Foreground="Black"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.CanContentScroll="True"
VerticalContentAlignment="Top"
VerticalAlignment="Stretch"
x:Name="detail_message">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" ToolTip="{Binding}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Border>
<Button Grid.Row="2"
x:Name="butOK"
DockPanel.Dock="Bottom"
Margin="10" Content="OK"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Padding="10" Width="150"
Click="butOK_Click" />
</Grid>
</Border>
</Grid>
PassErrorBooleanProperty
有两个绑定(我已经将其用作表示结果的东西,你可能还有其他的东西已存在),而你#&# 39; d需要两个不同的转换器,一个用于转换为Visibility
,另一个用于转换为int
(Grid.RowSpan
)。
当值为true
(通过)时,您将从转换器返回Visibility.Collapsed
和2
。当值为false时,您将返回Visibility.Visible
和1
。
如果您需要有关转换器的更多信息,请告诉我,尽管有很多信息可以使用IValueConverter
创建布尔值到可见性转换器等。