using (var stream = new StreamReader(fileName, Encoding.GetEncoding(1251)))
{
while (stream.Peek() >= 0)
{
var line = stream.ReadLine();
}
}
using (var stream = webRequest.GetRequestStream())
using (var writer = new StreamWriter(stream, Encoding.UTF8))
writer.Write(yourstring);
<Window.Resources>
<DataGrid x:Key="PersonDataGrid" AutoGenerateColumns="False" ItemsSource="{Binding .}" x:Shared="False">
<DataGrid.Columns>
<DataGridTextColumn Header="First Name" Binding="{Binding Path=FirstName}" IsReadOnly="True"/>
<DataGridTextColumn Header="Last Name" Binding="{Binding Path=LastName}" IsReadOnly="True"/>
</DataGrid.Columns>
</DataGrid>
</Window.Resources>
<StackPanel>
<ContentControl Content="{StaticResource PersonDataGrid}" DataContext="{Binding Path=Customers}" />
<ContentControl Content="{StaticResource PersonDataGrid}" DataContext="{Binding Path=Employees}" />
</StackPanel>
var serviceHost = new ServiceHost(typeof(MessageService));
var uri = new Uri("http://localhost:8000/WCFDuplexServiceTest/MessageService")
serviceHost.AddServiceEndpoint(typeof(IMessageService), new WSDualHttpBinding(), uri);
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
<!-- Задаете шаблон отображения -->
<ScrollViewer.Template>
<ControlTemplate TargetType="{x:Type ScrollViewer}">
<Grid>
<ScrollContentPresenter /> <!-- Это область куда помещаются элементы, что будут скролировать -->
<!-- Вместо этого комментария можно поместить кнопку, если не нужно, чтобы она скролировалась -->
<ScrollBar x:Name="PART_VerticalScrollBar" Value="{TemplateBinding VerticalOffset}" Maximum="{TemplateBinding ScrollableHeight}"
ViewportSize="{TemplateBinding ViewportHeight}" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
HorizontalAlignment="Right" Style="{DynamicResource ResourceKey=ScrollBarStyle}" />
</Grid>
</ControlTemplate>
</ScrollViewer.Template>
<!-- А здесь помещаете все, что должно скролироваться -->
</ScrollViewer>