Jump to content

Search the Community

Showing results for tags 'wpf'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Comunidade
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Apresentação de Projectos de Programação
    • Downloads
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Pascal
    • Python
    • Bases de Dados
    • Dispositivos Móveis
    • Outras Linguagens
  • Desenvolvimento Orientado para Web
    • PHP
    • HTML
    • CSS
    • Javascript
    • Outras Linguagens de WebDevelopment
    • Desenvolvimento Web
  • Desenvolvimento .NET
    • C#
    • Visual Basic .NET
    • ASP.NET
    • WPF & SilverLight
  • Software e Sistemas Operativos
    • Software de Produtividade
    • Sistemas Operativos
    • Apresentação de Software
  • Informática
    • Interfaces Visuais
    • Computação Gráfica
    • Algoritmia e Lógica
    • Segurança e Redes
    • Hardware
    • Electrónica e Automação Industrial
    • Matemática
    • Software de Contabilidade, Finanças e Admin. Pública
    • Dúvidas e Discussão de Programação
    • Tutoriais
    • Snippets / Armazém de Código
  • Outras Áreas
    • Notícias de Tecnologia
    • Dúvidas Gerais
    • Discussão Geral
    • Eventos
    • Anúncios de Emprego
  • Arquivo Morto
    • Projectos Descontinuados
    • System Empires

Blogs

  • Blog dos Moderadores
  • Eventos
  • Notícias de Tecnologia
  • Blog do Staff
  • Revista PROGRAMAR
  • Projectos
  • Wiki

Categories

  • Revista PROGRAMAR
  • Tutoriais
  • Textos Académicos
  • Exercícios Académicos
    • Exercícios c/ Solução
    • Exercícios s/ Solução
  • Bibliotecas e Aplicações
  • Outros

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Website


GitHub


LinkedIn


Twitter


Facebook

Found 20 results

  1. Boas, quando tento usar o SelectedItem da datagrid de um modelo dá-me o seguinte erro no XAML Binding Failures: Cannot convert '{NewItemPlaceholder}' from type 'NamedObject' to type 'IdeiaRemainderV2.UI.Models.StepModel' for 'en-US' culture with default conversions; consider using Converter property of Binding. NotSupportedException:'System.NotSupportedException: TypeConverter cannot convert from MS.Internal.NamedObject. A datagrid fica com o contorno a vermelho, como é que posso resolver este problema?
  2. Estou a desenvolver um sistema POS para o meu projeto final de ano estou com um grande problema que não estou conseguir resolver . Quero carregar os produtos que eu insiro na minha base de dados para o programa e que fique desta maneira (ver a imagem) mas não encontro nenhum video / forum que fale sobre isto. Se me poderem ajudar agradecia porque e a única coisa que me falta para acabar o projeto Linguagem usada: C# WPF e base de dados Mysql
  3. Eu queria saber como se coloca um "botão" em wpf, mas ele tem que ser "invisivel" e deve ser redondo, e n sei explicar muito bem, mas é mais ou menos assim: https://1dj7ia2prpz93pxo7t32a2j1-wpengine.netdna-ssl.com/wp-content/uploads/2014/08/web-design-blog-9-742x441.png Onde os botões são redondos e voce pode clicar neles, so que os meus são transparentes pra poder ficar com a imagem de fundo atras, como esse: https://khanacademy.zendesk.com/hc/user_images/zlwiBaVF7PPHUEC58ZFTtw.png É tipo o circulo redondo como o da primeira imagem + a transparencia da segunda e eu n sei como fazer isso 😐
  4. AJBM

    Criar Ribbon

    Boas! Eu tenho esta view. <Window x:Class="WpfApplication2.Views.MainWindowView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:views="clr-namespace:WpfApplication2.Views" xmlns:prism="http://prismlibrary.com/" prism:ViewModelLocator.AutoWireViewModel="True" Title="MainWindow" Height="350" Width="525"> <Grid> <!--<Ribbon Name="myRibbon" HorizontalAlignment="Left" VerticalAlignment="Top" Width="517" Height="75"> </Ribbon>--> <Grid.RowDefinitions> <RowDefinition Height="37*"/> <RowDefinition Height="282*"/> </Grid.RowDefinitions> <Button Content="View A" HorizontalAlignment="Left" Margin="36,10,0,0" VerticalAlignment="Top" Width="75" Command="{Binding NavigateCommnad}" CommandParameter="ViewA"/> <Button Content="ViewB" HorizontalAlignment="Left" Margin="138,10,0,0" VerticalAlignment="Top" Width="75" Command="{Binding NavigateCommnad}" CommandParameter="ViewB"/> <ContentControl HorizontalAlignment="Left" Margin="50,76,0,0" Grid.Row="1" VerticalAlignment="Top" Width="431" Height="175" prism:RegionManager.RegionName="ContentRegion" > </ContentControl> </Grid> </Window> Quando eu clico no botão ViewA é apresentado um usercontrol dentro da própria window. Eu quero substituir os botões por uma ribbon e quero que cada user control seja responsável por construir a sua própria RibbonTab.(Ribbon groups, Ribbon buttons,...). Mas só quando é clicada. Tenho uma interface IRibbonTab public interface IRibbonTab { void BuildRibbonTab(RibbonTab pRibbonTab); } Todas os UserControls implementam esta interface. public partial class ViewA : UserControl, IRibbonTab { public ViewA() { InitializeComponent(); } public void BuildRibbonTab(RibbonTab pRibbonTab) { RibbonGroup group = new RibbonGroup(); group.Header = "Group1"; RibbonButton button = new RibbonButton(); button.Label = "Button"; group.Items.Add(button); pRibbonTab.Items.Add(group); } } O processo de navegação da Region é definido na MainWindowViewModel public class MainWindowViewModel : BindableBase { private readonly IRegionManager myRegionManager; public DelegateCommand<string> NavigateCommnad { get; set; } public MainWindowViewModel(IRegionManager pRegionManager) { myRegionManager = pRegionManager; NavigateCommnad = new DelegateCommand<string>(Navigate); } private void Navigate(string url) { myRegionManager.RequestNavigate("ContentRegion", url, CallBack); } private void CallBack(NavigationResult obj) { } } A minha dúvida é como é que eu passo RibbonTab que foi clicada para o UserControl. Ps: Se for possível mover este tópico para um quadro mais indicado.
  5. Boas, Pretendo adicionar a um ficheiro de XML um link, sendo que a cada link associo um título, porém sempre que adiciono um novo troca o que já existia O XML é: <WebSite> <Title>qwe12r</Title> <Link>12rqwfa</Link> </WebSite> Para escrever isso tenho: DataTable datatable = new DataTable(); datatable.TableName = "WebSite"; DataColumn dc1 = new DataColumn("Title"); DataColumn dc2 = new DataColumn("Link"); datatable.Columns.Add(dc1); datatable.Columns.Add(dc2); datatable.Rows.Add(textBoxTitle.Text, textBoxLink.Text); DataSet dataset = new DataSet(); dataset.Tables.Add(datatable); dataset.DataSetName = "fav"; dataset.WriteXml("FicheiroXML.xml"); E já agora, depois de conseguir adicionar os links, como é que eu posso percorrer todo o ficheiro e recolher os títulos, para os poder colocar numa listbox? Obrigado
  6. vrael

    WPF usando MVVM

    Boa tarde, Tenho-me andado a aprender C#, sendo que já sabia algo de POO (Java). Após passar umas horas a aprofundar os conhecimentos teóricos no que toca ao MVVM. Tenho algumas duvidas práticas sobre o modelo nomeadamente em contexto profissional. Quero implementar uma aplicação em "duas" partes, ou seja, autenticação com um login e posteriormente uma view onde funcionará tudo o resto. Já fiz a mesma a aplicação usando diferentes WindowsForms e agora estou a progredir para o WPF e usando uma abordagem MVVM. Em suma: Como guardo a resposta do webservice de login e mantenho o estado na segunda view. Na segunda view, pretendo usar vários User-Controls (pretendo implementar um chat, tipo skype) também vou precisar de guardar estados (ids de utilizador, etc...) Se alguém me pudesse dar uma ajuda agradecia imenso. Cumprimentos,
  7. AJBM

    Text Box propriedades

    Boas! Qual é a propriedade da textbox que me permite saber quando eu acabei de escrever um texto. Ex: Eu escrevo por exemplo Joao e quando acabar de escrever a palavra sem clicar em botões, quero me apresenta os resultados que eu tenho na base dados para Joao. Eu não quero a text changed porque este método é chamado sempre que ocorre uma alteração ao texto, ou seja, basta apenas escrever j que já vai a base dados verificar eu não queria isto. A parte da base dados eu sei fazer.
  8. AJBM

    Thread

    Boas! Eu quero apresentar uma mensagem ao utilizador e passado algum tempo a mensagem desapareça. Estou a utilizar uma label para apresentar a mensagem (lblMsg) Eu tenho isto mas não está a funcionar lblMsg.Content = sms; Thread.Sleep(3000); lblMsg.Content = "";
  9. Boas! Quando eu seleciono uma linha na datagrid ela fica destacada por uma linha azul, eu quero alterar essa cor. Alguém sabe qual é a propriedade ? <DataGrid.RowStyle> <Style TargetType="DataGridRow"> <Setter Property="Foreground" Value="White"></Setter> </Style> </DataGrid.RowStyle>
  10. Linguagem C# e xaml ,tecnologia WPF. Boa tarde tenho um problema que me está a preocupar um pouco , é que quando uso uma DataGridComboBoxColumn quando seleciono um valor esse mesmo valor aparece nas outras DataGridComboBoxColumn dessa DataGrid. 2ºerro-> é como está em cima quando seleciono um item dentro da combobox ele simplesmente repete o item para as outras combobox da Datagrid O código está aqui : xaml <DataGrid CanUserAddRows="False" AutoGenerateColumns="False" Height="399" HorizontalAlignment="Left" Margin="155,113,0,0" Name="dataGrid2" VerticalAlignment="Top" Width="706" Background="White" Visibility="Hidden" Selectionchanged="dataGrid2_Selectionchanged" GridLinesVisibility="All" CanUserResizeRows="False" CanUserSortColumns="False" CanUserResizeColumns="False" CanUserReorderColumns="False"> <DataGrid.Columns> <DataGridCheckBoxColumn Header="Visto" Binding="{Binding Path=Visto}" Selector.IsSelected="False" /> <DataGridTextColumn Header="Dealer" Binding="{Binding Path=Funcionario.Dealer}" CanUserSort="False" CanUserReorder="False" IsReadOnly="True" /> <DataGridTextColumn Header="Nome" Binding="{Binding Path=Funcionario.Nome}" IsReadOnly="True" /> <DataGridComboBoxColumn SelectedValueBinding="{Binding CustomerID}" SelectedValuePath="CustomerID" DisplayMemberPath="Nome" Header="CustomerID (ContactName alias using SelectedValueBinding)" ItemsSource="{Binding Source={StaticResource customerDataProvider}}"/> <DataGridTextColumn Header="Observações" Binding="{Binding Path=Observacao}" IsReadOnly="False" Width="321" /> </DataGrid.Columns> Agadecia muito se me pudessem ajudar pois realmente ando a perder muito tempo com estes dois problemas e tenho que entregar este programa a uma empresa na segunda pois é o fim do meu estágio.
  11. Olá pessoal Estou migrando uma aplicação de Windows Form para WPF e minha dúvida está em qual espaço utilizar em A, B, C, D, E... Bem na verdade A e F acredito ser DockPanel Toolbar e StatusBar, mas em B, C e D não tenho certeza se utilizo Grid ou DockPanel pois se observarem no desenho gostaria que meus espaços não fiquem fixos, ou seja que o lado B seja possível redimensionar, e que entre C e D também. Como não achei uma simples solução para redimensionar em DockPanel a minha dúvida de layout aumentou. Obs.: as áreas amarelas são possíveis Toolbars, e no D coloquei setas de redimensionamentos pois acredito que o D seja uma Grid com 2 Colunas. Obrigado a todos
  12. Boas! Alguém me podia ajudar como trabalhar com Model-View-Presenter integrado com Windows Presentation Foundation em C#? Cumprimentos.
  13. Boas! Eu fiz uma aplicação em WPF de teste para tentar perceber porque é que as meus child viewmodels não são destruídos. A aplicação consiste numa view principal (main) que tem 3 botões: cada botão muda o child viewmodel. O problema é que o destrutor do child view model só é chamado quando o utilizador navega 2 vezes depois. Por exemplo: O child viewmodel inicial é o SolidWoods_VM; O utilizador clica em "Show Boards"; O destrutor de SolidWoods_VM não é chamado; O utilizador clica em "Show Acessories"; O destrutor de SolidWoods é chamado; O destrutor de Boards_VM não é chamado; Código: Main View: <Window.DataContext> <my:Main_VM /> </Window.DataContext> <Window.Resources> <DataTemplate DataType="{x:Type my:SolidWoods_VM}"> <my:SolidWoods /> </DataTemplate> <DataTemplate DataType="{x:Type my:Boards_VM}"> <my:Boards /> </DataTemplate> <DataTemplate DataType="{x:Type my:Acessories_VM}"> <my:Acessories /> </DataTemplate> </Window.Resources> <StackPanel> <Button Content="Show Solidwoods" Command="{Binding NavSolidWoods}"/> <Button Content="Show Boards" Command="{Binding NavBoards}"/> <Button Content="Show Acessories" Command="{Binding NavAcessories}"/> <ContentControl Content="{Binding CurrentView}" /> </StackPanel> Main viewmodel: public class Main_VM : ViewModelBase { #region Fields private object _currentView; public object CurrentView { get { return _currentView; } set { if (_currentView != value) { _currentView = value; NotifyPropertyChanged("CurrentView"); } } } #endregion #region Commands #region Declarations private DelegateCommand _navSolidWoods; public DelegateCommand NavSolidWoods { get { if (_navSolidWoods == null) _navSolidWoods = new DelegateCommand(ShowSolidWoods); return _navSolidWoods; } } private DelegateCommand _navBoards; public DelegateCommand NavBoards { get { if (_navBoards == null) _navBoards = new DelegateCommand(ShowBoards); return _navBoards; } } private DelegateCommand _navAcessories; public DelegateCommand NavAcessories { get { if (_navAcessories == null) _navAcessories = new DelegateCommand(ShowAcessories); return _navAcessories; } } #endregion #region Actions private void ShowSolidWoods(object o) { CurrentView = null; GC.Collect(); CurrentView = new SolidWoods_VM(); } private void ShowBoards(object o) { CurrentView = null; GC.Collect(); CurrentView = new Boards_VM(); } private void ShowAcessories(object o) { CurrentView = null; GC.Collect(); CurrentView = new Acessories_VM(); } #endregion #endregion public Main_VM() { CurrentView = new SolidWoods_VM(); } Exemplo de um childviewmodel: public class SolidWoods_VM { public SolidWoods_VM() { } ~SolidWoods_VM() { Console.WriteLine("SolidWoods_VM is dying..."); } }
  14. Boas, Estou a utilizar WPF, MVVM e Entity Framework no meu projeto atual. Basicamente, tenho um viewmodel para operações CRUD numa lista de materiais. O contexto EF deste viewModel (WTContext) é inicializado da seguinte forma: SolidWoods_VM newView = new SolidWoods_VM(); newView.Context = new WTContext(SettingsManager.Instance.GetConnectionString()); Desta forma consigo testar facilmente este ViewModel com um contexto falso: SolidWoods_VM swVM = new SolidWoods_VM(); swVM.Context = new FakeWTContext(); A minha dúvida é a seguinte: Como é que faço o refresh do contexto? Imaginem que algo corre mal quando tento gravar as alterações com WTContext.SaveChanges(), como é que o viewModel sabe se deve fazer o refresh assim: Context = new WTContext(SettingsManager.Instance.GetConnectionString()); ou assim? Context = new FakeWTContext(); Já pensei em adicionar uma propriedade bool ao viewModel chamada ForTestingPurposes, desta forma o refresh era fácil: if (!ForTestingPurposes) { Context = new WTContext(SettingsManager.Instance.GetConnectionString()); } else { Context = new FakeWTContext(); } Não haverá uma forma mais elegante de fazer as coisas, sem a propriedade adicional (ForTestingPurposes)?
  15. Boa noite, O problema é o seguinte, eu tenho uma datagrid que expõe uma list de objectos mas no entanto não deixa adicionar novos elementos nem realmente altera os dados quando edito na grid. O meu novo problema é agora a datagrid não estar a guardar os dados inseridos. public ObservableCollection<BolaInfo> bolas; . . . public IniciaSim() { this.InitializeComponent(); this.bolas = new ObservableCollection<BolaInfo>(); bolas.Add(new BolaInfo(12, 25, 58, 73, 110)); } private void Introduzir_Click(object sender, RoutedEventArgs e) { if (rendering) { plotCanvas.Children.Clear(); CompositionTarget.Rendering -= RenderFrame; rendering = false; } DataGrid dados = new DataGrid(); dados.Width = plotCanvas.ActualWidth; dados.Height = plotCanvas.ActualHeight; dados.ColumnWidth = 128; dados.IsReadOnly = false; dados.IsEnabled = true; IEditableCollectionView EdView = dados.Items as IEditableCollectionView; //EdView.CanAddNew = true; //EdView.CanCancelEdit = true; //EdView.CanRemove = true; dados.AutoGenerateColumns = true; dados.CanUserResizeColumns = false; dados.CanUserReorderColumns = false; dados.CanUserAddRows = true; dados.CanUserDeleteRows = true; dados.ItemsSource = bolas; plotCanvas.Children.Add(dados); } Ao colocar um breakpoint na linha "dados.CanUserAddRows = true;" ele muda o valor para false. Porquê gostava eu de saber e porque não me está guardar automaticamente as edições feitas (visto que o delete está a funcionar correctamente). Cumprimentos
  16. Boas! Estou a fazer através de C# uma alteração do fundo de um botão. private void button1_Click(object sender, RoutedEventArgs e) { ImageBrush img1 = new ImageBrush(); img1.ImageSource = new BitmapImage(new Uri("/BTN;component/Images/btnred.png", UriKind.Relative)); button1.Background = img1; } O problema está no caminho das imagens. As imagens ficam em WPF numa pasta Images (que pertence ao projecto). Como faço para aceder as imagens que estão nessa pasta? Cumprimentos,
  17. Boas! Existe maneira de alterar o tamanho da Radio Button em WPF? Eu quero alterar o tamanho da bola. Obrigado!
  18. .NET Framework 4 - Windows Presentation Foundation Windows Presentation Foundation Learn about WPF: Introduction to WPF WPF Architecture What's New in WPF Version 4 Getting Started with WPF Learn how to create WPF applications: How to: Create a New WPF Application Project Walkthrough: Getting Started with WPF Application Development WindowsClient.NET WPF Fundamentals Learn about WPF programming model features, including: XAML Overview (WPF) Dependency Properties Overview Styling and Templating Layout System WPF Features Learn about specific WPF features: Controls Data Binding Overview Documents in WPF Graphics and Multimedia Security (WPF) WPF Globalization and Localization Overview Code Samples Get WPF samples: WPF Documentation Samples Community WPF Samples Tools Get tools to help develop WPF applications: Visual Studio 2010 Expression Blend WPF Tools
  19. Webcasts MSDN Webcast: An Introduction to Styles and Templates in Windows Presentation Foundation (WPF) (Level 200) MSDN Webcast: Composite Application Guidance for Windows Presentation Foundation (PRISM) (Level 200) MSDN Webcast: Developing Tablet PC Applications with Windows Presentation Foundation (Level 200) MSDN Webcast: Building Windows Presentation Foundation-Based Applications (Level 200) MSDN Webcast: Windows Presentation Foundation Application Model (Level 200) MSDN Webcast: geekSpeak: The Mole Visualizer for WPF with Karl Shifflet (Level 200) MSDN Webcast: geekSpeak: MVVM Patterns with Christopher Bennage and Rob Eisenberg (Level 200) MSDN Architecture Webcast: Optimizing Windows Presentation Foundation Applications (Level 200) MSDN Webcast: geekSpeak: The PowerThreading Library for Silverlight with Jeffrey Richter (Level 200) MSDN Webcast: Building Web Browser Applications with Windows Presentation Foundation (Level 200) MSDN Webcast: Building WPF Applications in Visual Studio 2008 and Expression Blend (Level 100) MSDN Webcast: geekSpeak: Accessibility and WPF with Robert Altland (Level 200) MSDN Webcast: geekSpeak: Simple but Effective Animation in Silverlight and WPF (Level 200) MSDN Webcast: BenkoTips Live and On Demand: What's New in the WPF Toolkit, Introducing the DataGrid, DatePicker, and Ribbon (Level 100) MSDN Webcast: geekSpeak: WPF for the Business Programmer with Paul Sheriff (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 01 of 18): Introduction (Level 100) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 02 of 18): What Is the Extensible Application Markup Language? (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 03 of 18): Conceptualizing Windows Presentation Foundation (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 04 of 18): Hello World (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 05 of 18): Controls (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 06 of 18): Panels (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 07 of 18): Deploying XAML-Based Applications (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 08 of 18): Resource Files (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 09 of 18): Data Binding (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 10 of 18): Adding Pizzazz with Style (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 11 of 18): 2-D Graphics (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 12 of 18): 3-D Graphics (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 13 of 18): Animation (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 14 of 18): Multimedia (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 15 of 18): Compatibility with Win32 (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 16 of 18): Creating Controls (Level 200) MSDN Webcast: Windows Presentation Foundation Soup to Nuts (Part 17 of 18): Layout with Custom Panels (Level 200) Building a Sudoku Game Using Windows Presentation Foundation MSDN Webcast: Building a Sudoku Game Using Windows Presentation Foundation (Part 1 of 5) (Level 100) MSDN Webcast: Building a Sudoku Game Using Windows Presentation Foundation (Part 2 of 5) (Level 100) MSDN Webcast: Building a Sudoku Game Using Windows Presentation Foundation (Part 3 of 5) (Level 100) MSDN Webcast: Building a Sudoku Game Using Windows Presentation Foundation (Part 4 of 5) (Level 100) MSDN Webcast: Building a Sudoku Game Using Windows Presentation Foundation (Part 5 of 5) (Level 100)
  20. Já é público o próximo grande evento técnico da Microsoft. É destinado a todos os profissionais que trabalham em tecnologias de informação, sejam ligados à administração de sistemas, desenvolvimento de software, gestão de projecto ou de departamentos de sistemas de informação. Este ano irá decorrer nos dias 20,21 e 22 de Abril, com mais de 40 oradores e sobre diversas tecnologias como Visual Studio, Silverlight, WPF, Exchange, SQL Server, Windows 7, Sharepoint, etc. Até dia 5 de Março, Early Bird, o preço da inscrição é de 150€, sendo 225€ após essa data. Um evento a não perder! http://www.techdays2010.com
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.