0

私は次のコードを持っています-

WebBrowser bw = new WebBrowser();
Grid gr = new Grid();
gr = ((ClosableTab)tabControl1.Items[tabControl1.SelectedIndex]).Content as Grid;
Grid grc = new Grid();
grc = gr.Children[1] as Grid;
bw = grc.Children[0] as WebBrowser;
bw.Source = new Uri(txtBoxUrl.Text);

ただし、要件を満たすことはできますが、すべての要素がハードコーディングされています。より良い方法と1行のコードがあることを私は知っています。これを行うための標準コードを提案してください。

アップデート

<TabControl x:Name="tabControl1" FontWeight="UltraBlack" BorderThickness="1" BorderBrush="Black" Background="LightBlue" >
            <local:ClosableTab Background="LightBlue" Title="Preview" x:Name="PreviewWindow">
                <Grid>
                    <Border Name="mask" Background="Black" CornerRadius="5"/>
                    <Grid>
                        <Grid.OpacityMask>
                            <VisualBrush Visual="{Binding ElementName=mask}"/>
                        </Grid.OpacityMask>
                        <WebBrowser Name="webBrowser" Source="http://www.google.com" Margin="0" />
                    </Grid>
                </Grid>
            </local:ClosableTab>
            <local:AddableTab Background="LightBlue">
                Click '+' to add a New Tab
            </local:AddableTab>
        </TabControl>
4

1 に答える 1

0

ヘルパー関数を使用して、名前で子を見つけることができます。この答えを試してください

次に、次のように関数を呼び出すことができます。

DependencyObject parent = tabControl1.Items[tabControl1.SelectedIndex])
WebBrowser wb = UIHelper.FindChild<WebBrowser>(parent, "WebBrowser");
wb.Source = new Uri(txtBoxUrl.Text);
于 2013-02-05T10:20:56.547 に答える