編集:私はここに答えました。 Awesomiumはこれを行うことができますが、IEはありません
現在の.Net WebBrowserではこれを行うことはできません。私はAwesomiumを使ってこれを達成できました。 .Netサンプルをドローロードしてタブ付きブラウザを変更した場合は、新しいWebControlとそれに関連付けられた新しいWebSessionを追加することでこれをテストできます。ちょうど私の例では(すなわち.Cache2)
を新しいセッションの新しいデータパス・ディレクトリを構成している私は、次のように編集した:修正
<awe:WebSessionProvider
x:Key="GlobalSession2"
x:Shared="False"
DataPath=".\Cache2"
Preferences="{x:Static local:MainWindow.WebPreferences}"/>
:
はTabView.xamlで新しいWebSessionを追加しました新しい行を追加する行:
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="300"/>
<RowDefinition Height="300"/>
</Grid.RowDefinitions>
は、右の最初のWebBrowserコントロールのヴェローナとその周辺の終了後に新しいWebBrowserコントロール(およびsorroundingボーダーなど)を追加しました。これは、以前に追加された新しいセッションを使用しています。
<Grid x:Name="browserContainer2" Grid.Row="2">
<Border
x:Name="browserBorder2"
BorderThickness="0,1,0,0"
BorderBrush="{DynamicResource ControlBorderBrush}"
Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}">
<awe:WebControl
x:Name="PART_Browser2"
Source="{Binding Source2, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}"
NativeView="{Binding NativeView, RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}"
IsSourceView="{TemplateBinding IsSourceView}"
IsEnabled="{TemplateBinding IsSelected}"
WebSession="{Binding Source={StaticResource GlobalSession}}" />
</Border>
<ui:MetroProgressBar
Grid.ZIndex="100"
VerticalAlignment="Top"
HorizontalAlignment="Stretch"
Margin="0,3"
IsIndeterminate="{Binding IsNavigating, ElementName=PART_Browser}"
Visibility="{Binding IsNavigating, ElementName=PART_Browser, Converter={StaticResource BooleanToVisibilityConverter}}"/>
<Grid
x:Name="statusGrid2"
Height="25"
VerticalAlignment="Bottom"
Opacity="0.8">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border
x:Name="statusBox2"
Background="{DynamicResource ControlBackgroundBrush}"
BorderBrush="{DynamicResource ControlBorderBrush}"
BorderThickness="0,1,1,0"
CornerRadius="0,5,0,0"
IsHitTestVisible="False">
<TextBlock
x:Name="targetURLBlock2"
VerticalAlignment="Center"
Margin="5,0"
IsHitTestVisible="False"
Focusable="False"
Text="{Binding TargetURL, ElementName=PART_Browser, Converter={StaticResource UrlConverter}}"
TextTrimming="CharacterEllipsis"/>
</Border>
<Grid
x:Name="zoomBox2"
Grid.Column="1"
Margin="5,0,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border
Grid.ZIndex="-100"
Grid.ColumnSpan="2"
Background="{DynamicResource ControlBackgroundBrush}"
BorderBrush="{DynamicResource ControlBorderBrush}"
BorderThickness="1,1,0,0"
CornerRadius="5,0,0,0"
IsHitTestVisible="False"/>
<TextBlock
VerticalAlignment="Center"
Margin="7,0"
Text="Zoom:"/>
<Slider
x:Name="zoomBar2"
Grid.Column="1"
DataContext="{Binding ElementName=PART_Browser}"
Style="{StaticResource FlatSlider}"
Margin="0,0,25,0"
Minimum="10"
Maximum="400"
Width="120"
VerticalAlignment="Center"
Value="{Binding Zoom}"
AutoToolTipPlacement="TopLeft"
IsSnapToTickEnabled="True"
IsMoveToPointEnabled="True"
SmallChange="1"
LargeChange="10"
TickFrequency="10"
Focusable="False">
<Slider.ContextMenu>
<ContextMenu DataContext="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}">
<MenuItem Command="{x:Static awe:WebControlCommands.ResetZoom}" CommandTarget="{Binding}" />
</ContextMenu>
</Slider.ContextMenu>
</Slider>
</Grid>
</Grid>
</Grid>
それから私は、第二のブラウザのURLを格納するTabView.csに新しいSourceプロパティを追加しました:
public Uri Source2
{
get { return this.GetValue(SourceProperty2) as Uri; }
set { SetValue(SourceProperty2, value); }
}
public static readonly DependencyProperty SourceProperty2 =
DependencyProperty.Register("Source2",
typeof(Uri), typeof(TabView),
new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
そして最後に2組み込みを開始するために2つのURLをハードコーディングブラウザ
internal TabView(MainWindow parent, Uri url, bool isSourceView)
{
parentWindow = parent;
this.IsSourceView = isSourceView;
this.Source = new Uri("http://www.google.com");
this.Source2 = new Uri("http://www.google.com");
}
私は現在、Awesomiumを使用しています。 WebSessionsを個別にキャッシュできるように見えますが、うまくいけばすぐにそれを把握します – JAnton
がんばろう。 –