저는 작업중인 응용 프로그램을 테스트하기위한 스위치 보드 역할을하는 창을 만들고 두 가지 문제가 있습니다.wpf 동적 창
첫 번째 문제는 동적으로 스택 패널에 추가해야하는 버튼의 여백 &의 여백을 설정하려고하는 것입니다. XAML에서 속성은 다음과 같습니다.
<StackPanel Name="_mainStackPanel" >
<Button Height="Auto" Width="Auto" Margin="10,10,10,5" >Do Something</Button>
</StackPanel>
두 번째 문제는 더 까다 롭습니다. 나는, 노출 특성과 상태 표시 줄이 너무 좋아하는 스위치 보드 창을 원하는 : 내가 통해 일하고 있어요 테스트 케이스에서
<StatusBar BorderBrush="Black" BorderThickness="1" DockPanel.Dock="Left">
<TextBlock Name="_statusBar" Foreground="Black" TextWrapping="Wrap">blah</TextBlock>
</StatusBar>
public string Status {
get { return _statusBar.Text; }
set { _statusBar.Text = value; }
}
, 난 그냥 각 버튼에 표시 할이 상태 표시 줄에 텍스트 내용입니다 클릭하면 클릭을 호출하면 NullReferenceException이 발생합니다 ...
버튼을 클릭 할 때 수행 할 작업을 명령 패턴을 사용하여 알려줍니다. (난 그냥 GUI를 점화 작동하는지보고, 무엇을 주장하고 있지 않다)
private void _addButtons() {
foreach (var cmd in _commands)
{
var b = new Button
{
Content = cmd.DisplayText,
// height = "Auto" double.NaN ?
// width = "Auto"
// margin = "10,10,10,5
};
var command = cmd;
b.Click += ((sender, args) => command.Execute());
_mainStackPanel.Children.Add(b);
}
}
그리고 여기 내 "시험"의 설정입니다 : 여기에 명령 버튼으로 전환하는 스위치 보드 창에서 코드는 :
[TestFixture]
public class SwitchBoardTests
{
private SwitchBoardView _switchboard;
private Application _app;
[SetUp]
public void SetUp() {
var commands = new List<IDisplayableCommand> {
new StatusCommand("Hello...", _switchboard),
new StatusCommand("Good Bye...", _switchboard),
};
_switchboard = new SwitchBoardView(commands);
}
class StatusCommand : DisplayCommand
{
private readonly SwitchBoardView _view;
public StatusCommand(string message, SwitchBoardView view) : base(message) {
_view = view;
}
public override void Execute() { _view.Status = DisplayText; }
}
[Test]
public void Display() {
_app = new Application();
_app.Run(_switchboard);
//_switchboard.Show();
}
}
저는 WPF를 배우기 때문에이 두 가지 문제를 해결할 때 모범 사례가 가장 환영받을 것입니다.
건배,
Berryl 버튼의 추가 동적 들어